XC6200 Family FPGAs

51
XC6200 Family FPGAs By: Ahmad Alsolaim Alsolaim

description

XC6200 Family FPGAs. By: Ahmad Alsolaim. Alsolaim. Agenda. XC6200 Architecture Design Flows Library Support Applications Reconfigurable Processing. Memory. Problems Confronting Embedded Control Designers Today. Reconfiguration from external memory limited to low frequency. I/O. CPU. - PowerPoint PPT Presentation

Transcript of XC6200 Family FPGAs

Page 1: XC6200 Family FPGAs

XC6200 Family FPGAs

By:Ahmad Alsolaim

AlsolaimAlsolaim

Page 2: XC6200 Family FPGAs

Agenda

• XC6200 Architecture• Design Flows• Library Support• Applications• Reconfigurable Processing

Page 3: XC6200 Family FPGAs

CPU

ReconfigurableCoprocessor

(FPGA)

I/O

I/OMemory

Reconfiguration from externalmemory limited to low frequency

High frequencyaccess to registersneeded

Bus access to large numberof internal registers requirescareful design

Microprocessor interfaceconsumes resources

Insufficient memorycapacity for coprocessingalgorithms

Partial Reconfigurationis difficult

Problems Confronting Embedded Control Designers Today

Page 4: XC6200 Family FPGAs

XC6200XC6200 System Features MeetEmbedded Coprocessing Requirements

CPU

ReconfigurableCoprocessor

XC6200XC6200

I/O

I/OMemory

1000x improvement in reconfigurationtime from external memory

FastMAPtm assures high speed access to all internal registers

All registers accessed viabuilt-in low-skewFastMAPtm busses

Microprocessor interfacebuilt-in

High capacity distributed memorypermits allocation of chipresources to logic or memory

Ultrafast Partial Reconfigurationfully supported

Up to 100,000 gates !

Page 5: XC6200 Family FPGAs

XC6200 Architectural Overview

• Array of fine grain function cells, each with a register– high gate count for structured logic or regular

arrays

• Abundant, hierarchical routing resources• Flexible pin configuration

– programmable as in, out, bidirectional, tristate– CMOS or TTL logic levels

Page 6: XC6200 Family FPGAs

XC6200 Architecture (cont)

• High speed CPU interface for configuration and register I/O– Programmable bus width (8..32-bits)– Direct processor read/write access to all user

registers– All user registers and configuration SRAM mapped

into processor address space

Page 7: XC6200 Family FPGAs

XC6200 Architecture

4x4 BlockUser I/Os

16x16 Tile

Address

Data

FastMAPtm

Interface

Use

r I/

Os U

ser I/O

s

User I/Os

Control

Ÿ

Function Cell

Ÿ

Ÿ

Ÿ

Ÿ

Ÿ

Ÿ

Ÿ

Ÿ

Ÿ

Ÿ

Ÿ

ŸNumber of tiles varies between devices in family

Alsolaim

Page 8: XC6200 Family FPGAs

Logical Organization: Basic Cell.

Alsolaim

Page 9: XC6200 Family FPGAs

Logical Organization: XC6200 Function Unit

• Function unit allows :– any function of 2 variables– any flavour of 2:1 mux– buffers, inverters, or constant 0s and 1s– any of the above in addition to a D-type register

• 3 I/Ps, each from any of 8 directions; O/P to up to 4 directions

Page 10: XC6200 Family FPGAs

Logical Organization: Function Unit.

Figure 6: XC6200 Function Unit

Alsolaim

Page 11: XC6200 Family FPGAs

Logical Organization: Function Unit. (cont)

Alsolaim

Page 12: XC6200 Family FPGAs

Logical Organization: Function Unit. (cont)

Alsolaim

Page 13: XC6200 Family FPGAs

Physical Organization: Cells, Blocks and Tiles

Alsolaim

Page 14: XC6200 Family FPGAs

Physical Organization: Cells, Blocks and Tiles (cont)

Alsolaim

Page 15: XC6200 Family FPGAs

Routing Resources Example

Alsolaim

Page 16: XC6200 Family FPGAs

Routing Switches:

Alsolaim

Page 17: XC6200 Family FPGAs

North and South Switches:

Alsolaim

Page 18: XC6200 Family FPGAs

East and West Switches:

Alsolaim

Page 19: XC6200 Family FPGAs

Clock Distribution:

Alsolaim

Page 20: XC6200 Family FPGAs

Clear Distribution:

Alsolaim

Page 21: XC6200 Family FPGAs

Input/Output Architecture:

Alsolaim

Page 22: XC6200 Family FPGAs

Connections Between IOB’s And Built-In XC6200 Control Logic:

Alsolaim

Page 23: XC6200 Family FPGAs

Array Data Sources In West IOB’s:

Alsolaim

Page 24: XC6200 Family FPGAs

XC6200 Device Organization

• Conceptual view

Logic Array

RA

M In

terf

ace

Programmable I/O

• Logic symbol

G1G2

GClkGClr

OEReset

I/O

CS A(1

5:0)

D(3

1:0)

RdW

rAlsolaim

Page 25: XC6200 Family FPGAs

FastMAP CPU Interface

• The industry’s only random access configuration interface– allows for extremely fast full or partial device

configuration - you only program the bits you need

• Allows direct CPU (random) access to user registers– supports “coprocessing” applications.

Page 26: XC6200 Family FPGAs

FastMAP CPU Interface (cont)

• Easily interfaced to most microprocessors and microcontrollers– “memory mapped” architecture makes it just like

designing with SRAM

Page 27: XC6200 Family FPGAs

FastMAP (cont)

• Map Register allows mapping of user registers on to 8, 16, or 32 bit data bus

• Allows unconstrained register placement

• Obviates need for complex shift and mask operations Cells

Cell Array

User-definedregister

01

bit 0

00

000

00

1

11

11

bit 1

bit 2

bit 3bit 4

bit 5

bit 6bit 7

Map Register

Data

Bus

Page 28: XC6200 Family FPGAs

FastMAP (cont)

• Wildcard Registers allow “don’t cares” on address bits– same data can be written to several locations

(SRAM and user registers) in one cycle– fast configuration of bit-slice type designs– broadcast of data to registers without tying up

valuable routing resources.

Page 29: XC6200 Family FPGAs

Partial Run-time Reconfiguration

• Extend hardware to a larger (virtual) capacity through rapid reconfiguration

• Derive time-varying structures that are smaller and faster than the ASIC counterpart

• Make more transistors participate in a given computation

Alsolaim

Page 30: XC6200 Family FPGAs

Partial Run-time Reconfiguration

F2F4

F5

F3

F6

Time = 0

Alsolaim

Page 31: XC6200 Family FPGAs

Partial Run-time Reconfiguration

F2F4

F5

F7

F6

Time = <a short time later>

F8F9

Alsolaim

Page 32: XC6200 Family FPGAs

ns us ms s

XC4013

40ns

200us

250ms

XC6216

Design Swapping

Block Swapping

Circuit Updates

Rewiring

Reconfiguration Speedvs Traditional Technologies

Page 33: XC6200 Family FPGAs

XC6200 Family Members

Device XC6209 XC6216 XC6236 XC6264

Appr Gate Count 9k 16k 36k 64kNumber of Cells 2304 4096 9216 16384Max No. of Registers 2304 4096 9216 16384

Number of IOBs 192 256 384 512

Cell Rows x Columns 48x48 64x64 96x96 128x128

Notes :1. Gate counts are estimated average cases, based on LSI Logic figures - register rich designs can have a

much higher equivalent gate count than stated above.2. Not all IOBs are connected directly to pads - some pads are shared between IOBs.

Alsolaim

Page 34: XC6200 Family FPGAs

Design Flows

Hierarchical EDIF

Schematic Capture VHDL SynthesisMacro Libraries

XACTstepSeries 6000

Delay File

Device Configuration

Page 35: XC6200 Family FPGAs

Library Support

• Primitive gates and functions (compatible with other Xilinx parts)– AND, OR, ADD, MULT, etc

• More complex macros also to be available– memory access– DSP functions (FIR, FFT, DCT)– JTAG, decoders, etc.

Page 36: XC6200 Family FPGAs

Applications

• Can be used as “regular” FPGA– serial interface allows for booting from PROM

• Intended to act as hardware accelerator for microprocessors– FastMAP allows for

• direct microprocessor access to “internal” logic• fast reconfiguration of all or part of device

Page 37: XC6200 Family FPGAs

Applications (cont)

• “Context switching” and “virtual hardware” are realistic propositions

• Typical uses might include DSP, image processing, datapaths, etc.

Page 38: XC6200 Family FPGAs

Reconfigurable Processing

• “Custom computing” concept, building on– fast configuration– virtual hardware

• PCI based development system to be made available– can be used as a custom computer in its own

right, or– as an aid to system development for customers’

designs

Page 39: XC6200 Family FPGAs

XC6000 Software:

• XACT6000 Software From Xilinx. (will be available soon in our lab)

• Trianus/Hades Design Entry Software for the XC6200.(available in our lab)

• Velab: Free VHDL Elaborator for the XC6200. (available in our lab)

• XC6200 Inspector. (available in our lab)

Alsolaim

Page 40: XC6200 Family FPGAs

A Multiplier for the

XC6200

Page 41: XC6200 Family FPGAs

A Multiplier for the XC6200

• Structure• Math• Building Lookup Tables• Area Optimization• Mapping into an XC6200• Changing Coefficients• Performance• Summary

Page 42: XC6200 Family FPGAs

8 bit data

4 4

LUT16 X 12

LUT16 X 12

12

4

8

12 bit adder

12

Distributed Arithmetic(Multiplier)

Page 43: XC6200 Family FPGAs

ConstantLUT-B Input

LUT-A Output

LUT-A Input

LUT-B Output

Adder Output

Math Class

Page 44: XC6200 Family FPGAs

Architecture of the Multiplier

M[7:0]

M[7:4] M[3:0]

LUT-B LUT-A Pipelined LookupTables

Pipelined Adder

A[7:4] A[3:0]A[11:8] B[3:0]B[7:4]B[11:8]

4-bit half4-bit full4-bit half PipelineRegister

P[3:0]P[7:4]P[11:8]P[15:12]

CarryCarry

Page 45: XC6200 Family FPGAs

LUTs by Muxing

A3 A2 A1 A0 P7 P6 P5 P4 P3 P2 P1 P0

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

Px

A3A2A1A0

• Lookup Table contains all pre-calculated partial products.

• Use a Truth Table to determine Mux inputs.All possible products for multiplying by 0011 (3)

Page 46: XC6200 Family FPGAs

Optimizing the Lookup

A3 A2 A1 A0 P7 P6 P5 P4 P3 P2 P1 P0

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

No optimization

OptimizedFunc1

Func2

Func3

Func4

Px

A3A2

?

?

?

?

A1A0

• Two mux levels can be collapsed into a single gate.

• The function can be determined with a truth table.

XOR

NAND

OR

BUF

Page 47: XC6200 Family FPGAs

Multiplier Schematic

• The corresponding view in the layout editor.

• The LUTs are offset to line up bits for adder.

• Pipeline registers are cheap.– XC6216 has 4096 Flip Flops

• Schematic resembles the block diagram.– Two LUTs sourcing

adder.

LUT-A LUT-B ADDER

Page 48: XC6200 Family FPGAs

A Closer Look at a Lookup

• Each 12-bit LUT is built from 12 one bit LUTs.

• LUTs get stacked vertically.

Page 49: XC6200 Family FPGAs

Determining Coefficients

A3 A2 A1 A0 P

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

• Schematic for a single 4-input LUT.• Functions can be determined from the Truth Table.

Page 50: XC6200 Family FPGAs

Changing Coefficients

Func1 Func2 Func3 Func4

• Functionality of a cell is contained in one byte.– 32-bit access can

change the function of 4 cells per write cycle.

• 96 cells need writing, or 24 write cycles. (worst case)– 1.45s assuming

33MHz

Page 51: XC6200 Family FPGAs

Summary

• 8x8 constant coefficient multiplier• Pipelined - 75+ MHz performance• Small grain architecture - High degree of LUT

optimization• Coefficients easily changed - Fast reconfig

times.• High Performance/Dollar