fpga implementations - auburn universitynelson/courses/elec4200/fpga... · topic outline chapter 4...

61
FPGA Implementations Smith Text: Chapters 4 - 8 Online version at: http://www10.edacafe.com/book/ASIC/ASICs.php

Upload: others

Post on 18-Jul-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

FPGA Implementations

Smith Text: Chapters 4-8Online version at:

http://www10.edacafe.com/book/ASIC/ASICs.php

Page 2: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Topic outline

Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter 6 – Programmable I/O cells Chapter 7 – Programmable interconnects Chapter 8 – FPGA design tools

Page 3: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Basic FPGA architecture (Fig. 1.9)

programmableinput/output cell

Page 4: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Programming Technologies (Chap. 4)

PLAs were mask programmable PALs used fuses for programming Early PLDs & CPLDs used floating gate

technology Erasable Programmable Read Only Memory (EPROM)

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

FPGAs used RAM for programming Later trends

Fuses were replaced with anti-fuses Better reliability

Large CPLDs went to RAM-based programming

Page 5: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Programming Technologies RAM

Volatile – must configure after power-up In-System Re-programmable (ISR) Run-Time Reconfiguration (RTR)

dynamic reconfiguration while system is operating

Floating gate technologies Non-volatile but re-usable

UV EPROM, EEPROM, and flash memory In-System Programmable (ISP)

EEPROM and flash memory In-System Re-programmable (ISR)

Flash memory

Fuse/anti-fuse Non-volatile but not re-usable One Time Programmable (OTP)

Page 6: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Programming technology

EPROM transistor (Fig. 4.6) Programmingvoltage forces charge into floating gate.(trapped until given energy to escape)[Altera EPLDs, Xilinx EPLDs]

Static RAM (Fig. 4.5)[Xilinx FPGAs]

Antifuse (Fig. 4.1) Open until programming current melts dielectric (one time only) [Actel PLICE©]

Configure devicesby programming fuses/antifuses ormemory cells to establish connectionsin the circuit.

Page 7: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

PALs16L8 – combinational logic 10 to 16 inputs, each with

true and complement signal

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

any of up to 16 inputs or their complements

Tri-state control product term for inverting output buffer When output in tri-

state, I/O pin can be used as input High impedance

output with no signal driven

Page 8: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

PALs16R8 – sequential logic 8 inputs, each with true &

complement 8 outputs, each with

D flip-flop With feedback for FSMs

8 product terms that can AND any of: 8 inputs or their

complements 8 feedbacks or their

complements from D flip-flops

One clock for all FFs One tri-state control for all

outputs

Page 9: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

PLDs22V10 replaced all PALs Combinational and/or sequential

logic Macrocell program bits C0, C1

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

Macrocell 8-16 product terms Tri-state control product term

Global preset & clear PTs clock

Page 10: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

CPLDs An array of PLDs

Global routing resources for connections PLDs to other PLDs PLDs to/from I/O pins

Example: Cypress 39K Each Logic Block (LB)

similar to a 22V10 Each cluster of 8 LBs

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

Interconnect Modules (PIMs) provide interconnections

Array of up to 24 clusters with global routing

I/O Block

4096 bitRAM

Dual-PortFIFO

LB

PIM

8192 bitRAM

LBLBLB

LB

8192 bitRAM

LBLBLB

I/O B

lock

I/O B

lock

I/O Block

4096 bitRAM

Dual-PortFIFO

LB

PIM

8192 bitRAM

LBLBLB

LB

8192 bitRAM

LBLBLB

I/O Block

4096 bitRAM

Dual-PortFIFO

LB

PIM

8192 bitRAM

LBLBLB

LB

8192 bitRAM

LBLBLB

4096 bitRAM

Dual-PortFIFO

LB

PIM

8192 bitRAM

LBLBLB

LB

8192 bitRAM

LBLBLB

I/O B

lock

I/O B

lock

4096 bitRAM

Dual-PortFIFO

LB

PIM

8192 bitRAM

LBLBLB

LB

8192 bitRAM

LBLBLB

4096 bitRAM

Dual-PortFIFO

LB

PIM

8192 bitRAM

LBLBLB

LB

8192 bitRAM

LBLBLB

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

GCLK[3:0]

GCLK[3:0]

GCLK[3:0]

CNTL[3:0]4

4

8

PLLs &Clock Mux

Page 11: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Programmable ASIC logic cells(Chapter 5)

Chip contains an array of basic logic cells Xilinx : “configurable logic block” (CLB) contains

SRAM lookup tables (LUTs) to implement combinational logic

D flip flops Multiplexers to establish paths in the CLB

Actel “ACT” : multiplexers implement logic Altera “Flex” : similar to Xilinx CLB Altera “MAX” : PALs implement logic

Page 12: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Actel ACT architecture (Fig. 5.1)

(mux-based logic modules)

ACT 1 logic modulePass transistor implementation

Page 13: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Altera MAX architecture (Fig. 5.12)

(PAL-based logic modules)

Page 14: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Copyright ©2008, Thomson Engineering, a division of Thomson Learning Ltd. 3-14

Page 15: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Xilinx FPGAs Virtex and Spartan 2

Array of 96 to 6,144 PLBs 4 LUTs/RAMs (4-input) 4 FF/latches

4 to 32 4K-bit dual-port RAMs Virtex II, Virtex II Pro

Array of 352 to 11,204 PLBs 8 LUTs/RAMs (4-input) 8 FF/latches

12 to 444 18K-bit dual-port RAMs 12 to 444 18×18-bit multipliers 0 to 2 PowerPC processor cores

Virtex 4 Array of 1,536 to 22,272 PLBs

4 LUTs/RAMs (4-input) 4 LUTs (4-input) 8 FF/latches

48 to 552 18K-bit dual-port RAMs Also operate as FIFOs

32 to 512 DSP cores include: 0 to 2 PowerPC processor cores

PC PC

Spartan 3 Array of 192 to 8,320 PLBs

4 LUTs/RAMs (4-input) 4 LUTs (4-input) 8 FF/latches

4 to 104 18K-bit dual-port RAMs 4 to 104 18×18-bit multipliers

Special coresI/O cellsRouting

PLBs

Page 16: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Xilinx FPGA families (2013)

Digikey.com (11/15/13):Spartan3 XC3S50A: $6.10Spartan6 XC6SLX4: $10.90Virtex7 XC7V2000T: $39,452.20

Page 17: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Xilinx Spartan 3 Family ArchitectureDigital Clock Manager

Page 18: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Xilinx “Spartan” FPGAs

Spartan Family* Gates I/Os Block RAM Embedded Multipliers DCM** Voltage

Spartan-3E 1.6M 376 648Kb 36 18x18 8 3.3V - 1.2V†

Spartan-3 5M 784 1872Kb 104 18x18 4 3.3V - 1.2V†

Spartan-3L 4M 633 1728Kb 96 18x18 4 3.3V - 1.2V†

Spartan-IIE 600K 514 288Kb – 4 3.3V - 1.5V†

Spartan-II 200K 284 56Kb – 4 3.3V - 1.5V†

Spartan-XL 40K 224 25Kb – – 3.3V

Page 19: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Spartan 3E FPGA Family

Page 20: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Xilinx Spartan 3 FPGAs(low-cost solutions)

Source: Spartan 3 FPGA Family Datasheethttp://www.xilinx.com

Page 21: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Spartan 3 I/O Chart

VQ(G) – Very thin quad flat packCP(G) – Chip-scale packageTQ(G) – Thin quad flat packPQ(G) – Plastic quad flat packFT(G) – Fine-pitch thin ball grid arrayFG(G) – Fine-pitch ball grid array

Page 22: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

FPGAs Recent trend - incorporate specialized cores

RAMs – single-port, dual-port, FIFOs 128 bits to 36K bits per RAM 4 to 575 per FPGA

DSPs – 18x18-bit multiplier, 48-bit accumulator, etc. up to 512 per FPGA

Microprocessors and/or microcontrollers up to 2 per FPGA

Hard core processor Support soft core processors

Synthesized from HDL into programmable resources

Page 23: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Ranges of ResourcesFPGA Resource Small FPGA Large FPGA

LogicPLBs per FPGA 256 25,920

LUTs and flip-flops per PLB 1 8

RoutingWire segments per PLB 45 406

PIPs per PLB 139 3,462

SpecializedCores

Bits per memory core 128 36,864Memory cores per FPGA 16 576

DSP cores 0 512

OtherInput/output cells 62 1,200

Configuration memory bits 42,104 79,704,832

Page 24: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Xilinx Virtex 4 Family(high capacity/performance)

Page 25: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Xilinx Spartan-6 Family

Page 26: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Spartan-6 applications

Page 27: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Xilinx: Basic CLB Architecture Look-up Table (LUT) implements truth table Memory elements:

Flip-flop/latch Some FPGAs - LUTs can also implement small RAMs

Carry & control logic implements fast adders/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 28: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Look-up Tables Configuration

memory holds outputs for truth table

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

0

1

A

B

S

Z

Multiplexer

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

B A S

0

1

Z

0

1

0

1

0

1

0

1

0

1

0

1

0

0

1

1

0

1

0

1

1 0 1

1

Page 29: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Data In

Add

ress

Dec

oder

WriteEnable

In0In1In2

ck0

ck1

ck2

ck3

ck4

ck5

ck6

ck7

Look-up Table Based RAMs Normal LUT mode

performs read operations

Address decoder with write enable generates clock signals to latches for write operations

Small RAMs but can be combined for larger RAMs In0 In1 In2

0

1

Z

0

1

0

1

0

1

0

1

0

1

0

1

0

0

1

1

0

1

0

1

Page 30: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

A Simple PLBTwo 3-input LUTs Can implement

any 4-input combinational logic function

1 flip-flop Programmable:

Active levels Clock edge Set/reset

22 configuration memory bits 8 per LUT

C0-7 S0-7

6 controls CB0-7

C0C1C2C3C4C5C6C7

111 110 101 100 011 010 001 000D2-0

outLUTCout

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

LUT C8x1

LUT S8x1

3

Page 31: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Xilinx XC3000 CLB (Fig. 5.6)

32-bit LUT

Page 32: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Xilinx XC4000 CLB (Fig. 5.7)

Page 33: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Xilinx XC5200 LC & CLB (Fig. 5.8)4 logic cells per CLB

Page 34: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Example CLB ¼ of a PLB (called a slice) from

Xilinx Spartan 3 Two 4-input Look-Up Tables

(LUTs) Can perform any combinational

logic function of up to 4 inputs Can function as small RAM

(16x1-bit) or shift register (up to 16-bit)

Two D-type flip-flops Programmable as level sensitive

latches Programmable clock edge, clock

enable, set/reset Extra logic

Fast carry for adders MUXs for Shannon expansion And more

Page 35: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Xilinx Spartan 3

CLB (“slice”)

Source: Spartan 3 FPGA Family Datasheet

http://www.xilinx.com

Page 36: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Xilinx XC5210-6 LCA Timing Model (Fig. 5.9)

Page 37: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Input/Output Cells Bi-directional buffers

Programmable for input or output Tri-state control for bi-directional operation Flip-flops/latches for improved timing

Set-up and hold times Clock-to-output delay

Pull-up/down resistors

Routing resources Connections to core of array

Programmable I/O voltage & current levels

Tri-state Control

Output Data

Input Data

to/frominternal routing

resources Pad

Page 38: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Programmable I/O block

Page 39: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Xilinx XC4000 IOB (Fig. 6.21)

Page 40: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Xilinx LCA timing with CLBs and IOBs (Fig. 6.22)

Page 41: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Interconnect Network Wire segments of varying length

xN = N PLBs in length 1, 2, 4, and 6 are most common

xH = half the array in length xL = length of full array

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

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

0 = wires disconnected 1 = wires connected

configbit

Wire A

Wire B

Page 42: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Xilinx interconnect structures (Fig. 7.5)

Page 43: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Direct interconnects

Page 44: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

PIPs Break-point PIP

Connect or isolate 2 wire segments

Cross-point PIP Turn corners

Multiplexer PIP Directional and buffered Select 1-of-N inputs for output

Decoded MUX PIP – N config bits select from 2N inputs Non-decoded MUX PIP – 1 config bit per input

Compound cross-point PIP Collection of 6 break-point PIPs

Can route to two isolated signal nets

Page 45: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Spartan 3 Routing Resources

PLB consistsof 4 slices

switch matrixover 2,400 PIPs

mostly MUX PIPs

x6 wiresegments

x2 wiresegments

xH & xL wiresegments

over 450total wire

segmentsin PLB

Page 46: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Lab 0 – in Spartan 6

Page 47: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Lab 0 – in Spartan 6(routing details)

Page 48: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Ex: modulo7 counter (device xc6slx25t)(in FPGA Editor)

Nelson & Stroud 8/2012 FPGA Verification (Session 2) 48

Nets

IO Pads

CLBs

INTs

Page 49: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Clock Region

Clock Region

LogicResources

LogicResources

LogicResources

LogicResources

LogicResources

LogicResources

LogicResources

LogicResources

Center ClockColumn(s)

Clock Routing

FPGA clock regions

Nelson & Stroud 8/2012 49

Page 50: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

47

8

10

CLKC tile

INT CLEXM

BUFG

BUFH

Main vertical spine

“Folded” vertical spine(one each in top and bottom half)

Distribution wire in center of clock region

Clock to INTsin one column

Spartan 6 clock tree example

Nelson & Stroud 8/2012 50

Page 51: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

BUFGsFrom top edge global clock pads

From bottom edge global clock pads

From left edge Global clock pads

From right edge global clock pads

From DCM/PLLand fabric

From DCM/PLLand fabric

BUFG controlsfrom fabric

Switch Box

Vertical spinesSpartan 6 global clock sources

Clock created by MIPS controllogic

From clockinput pad

Nelson & Stroud 8/2012

Page 52: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Configuration Interfaces Master – FPGA retrieves its own configuration from ROM

after power-up Serial or Parallel options

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

Boundary Scan Interface 4-wire IEEE standard serial interface for testing Write and read access to configuration memory

Not available in all FPGAs Used for dynamic partial reconfiguration

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

network and PLBs (Xilinx provides 2 of these ports) Other configuration interfaces in some FPGAs

Page 53: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Xilinx Configuration Interface Pins

Page 54: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Master mode

Configuration sequence during power-up of device Typically from

Serial EPROM Master Serial

Parallel EPROM Master Parallel

8-bit 32-bit

Page 55: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Daisy Chain Configuration

Page 56: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Slave Configuration

External source can be microprocessorwith configuration data stored in memory orgenerated by processor

Page 57: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Boundary Scan InterfaceUser registers can include:

a) configuration memoryb) access to FPGA core

TAP controller state diagram

Page 58: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Typical Boundary Scan Cell

Page 59: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Typical Boundary Scan Cell Primarily designed to test external surface

mount connections on printed circuit board EXTEST instruction

Capture logic values at BSCs Output responses from previous test patterns

Shift in test patterns through BSCs As we shift out captured logic values

Update test patterns into BSCs New test patterns are applied

Optional: can be used to test inside chip INTEST instruction

Same basic procedure as EXTEST but test patterns and responses are to/from device (FPGA) core

Page 60: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

Boundary Scan Access to FPGA Configuration memory

Write and read usually separate instructions Other registers for partial reconfiguration

Command, frame address, etc.

Core access Ports from TAP to PLB and routing resources

Good interface for accessing FPGA core Not supported by all FPGA manufacturers

Includes TCK, TDI, TDO access to core with active enable when core access instruction is in IR

Page 61: FPGA Implementations - Auburn Universitynelson/courses/elec4200/FPGA... · Topic outline Chapter 4 – Programmable ASIC technologies Chapter 5 – Programmable logic cells Chapter

FPGA Configuration Memory PLB addressable

Good for partial reconfiguration X-Y coordinates of PLB location to be written

Requires tag to identify which resources will be configured

Frame addressable Vertical or horizontal frame Access to all PLBs in frame

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

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