arreglo de compuertasarreglo de compuertas proggpramables ...dea.unsj.edu.ar/sisdig2/fpgas.pdf ·...

41
Arreglo de Compuertas Arreglo de Compuertas Programables en el Campo (Field Programmable Gate Array) FPGA

Upload: lamxuyen

Post on 01-Nov-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

Arreglo de CompuertasArreglo de Compuertas Programables en el Campo g p

(Field Programmable Gate Array) FPGA

Page 2: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

FGPAsFGPAsHasta 1200 E/SH t 40 t d d E/S t dHasta 40 estandares de E/S soportadosHasta 40.000 Flips-Flops y Look-Up-Tables (LUTs)Bloques de memoria hasta 18MbitsBloques multiplicadores Protocolo serial Gigabit High Speed Hard–Coded Procesador (Power PC) Soft-Coded ProcesadorPLL y DLL disponibles (2-8) por dispositivo. Hasta 550MHz.y p ( ) p pImpedancia de salida programableMuy usados en prototipos de ASICs debido a su altaMuy usados en prototipos de ASICs debido a su alta densidad y su re-programabilidad. Ayudan a solucionar errores de diseño sin modificar el Printed Circuit Board (PCB).

2Sistemas Digitales II / Electrónica Digital II

Page 3: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

FPGA – Programacióng

P og amaciónProgramaciónSRAM (Static Random Access Memory)( y)

bits de configuración son almacenados en SRAMs cellsSRAMs cellspueden ser reprogramados infinitamenteconfiguración NO es retenida después deconfiguración NO es retenida después de remover Vcc

se usa una pequeña memoria no volátil quese usa una pequeña memoria no volátil que almacena los bits de configuración e inmediatamente después de alimentar el sistema con Vcc, el FPGA lee p ,la memoria y se auto-configuraExiste dos excepciones a esta regla:

3Sistemas Digitales II / Electrónica Digital II

Page 4: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

FGPA Programacion (cont.)g ( )

Lattice XP FPGA, Actel IGLOO FPGAque usa una combinación de celdas de memoria FLASH (no volatil) que mantienen la configuración y las celdas SRAM ambas en el mismo chip (dice) Cuando el XP FPGA esambas en el mismo chip (dice). Cuando el XP FPGA es alimentado los bits de configuración son transferidos desde la FLASH a la SRAM en menos de 1ms, lo que se da a , qllamar instant-on FPGA. Además agrega un alto grado de seguridad al no haber un flujo de datos externos que pueden ser ‘leídos’pueden ser leídos .

Actel anti-fuse FPGAs. A tif l t i it bi t h tAntifuse es normalmente un circuito abierto hasta que una corriente de programación (~5mA) causa una gran potencia de disipación en un área muy pequeña, lo que provoca elde disipación en un área muy pequeña, lo que provoca el derretimiento de un aislante dieléctrico entre dos electrodos (metal-insulator-metal, MIM) formando una muy fina (20 ) ió t R di ti T l t(20nm) unión permanente. Radiation Tolerant.

4Sistemas Digitales II / Electrónica Digital II

Page 5: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

Application Specific Integrated Circuit (ASIC)(ASIC)

PProsMuy alta velocidad/performanceMenor consumo Menor tamañoMenor tamaño

ConsóMuy alto costo de producción

Costo de NRE elevadoLargo tiempo de producción/diseñoNo se puede modificar una vez producido el chipNo se puede modificar una vez producido el chip

5Sistemas Digitales II / Electrónica Digital II

Page 6: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

Xilinx Virtex II - Arquitecturaq

I/O Blocks (IOBs) Block SelectRAM™resourceresource

Programmable 

Dedicated multipliers

interconnect

ConfigurableLogic Blocks (CLBs)

Clock ManagementClock Management (DCMs, BUFGMUXes)

6Sistemas Digitales II / Electrónica Digital II

Page 7: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

Familia del Virtex 4

7Sistemas Digitales II / Electrónica Digital II

Page 8: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

Familia del Virtex II

8Sistemas Digitales II / Electrónica Digital II

Page 9: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

Altera Stratix III - Arquitecturaq

9Sistemas Digitales II / Electrónica Digital II

Page 10: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

Lattice ECP ArquitecturaqProgrammable IO Cells (PIC)

sysMEMEmbedded Block

RAM (EBR)Including:•sysIO buffers that support over 20+ interfaces up to

RAM (EBR) 9kbit True Dual Port

275MHz

700Mbps•333Mbps DDR Memory Interfaces

JTAG PortsysCONFIGTM

Programming Port

(includes Programmable (includes dedicated and dual use pins)

Function unit Fast (PFF) – Logic

Without RAM, 75% of Blocks

DSP Bl k

Up to 4 sysCLOCKPLLs

sysDSP BlocksMultiply &

Accumulate Up to 36x36

PLLs

Programmable Functional Unit

250 MHz

4 Primary (Quadrant based) and 3Functional Unit

(PFU) – Logic + RAM, 25% of

Blocks

based) and 3 Secondary Clocks

250MHz10Sistemas Digitales II / Electrónica Digital II

Page 11: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

Virtex II – Slices and CLBs XX

• Each Virtex�‐II CLB contains four slices BUFT

BUF T

COUTCOUT

– Local routing provides feedback between slices i th CLB d it

Slice S3

in the same CLB, and it provides routing to neighboring CLBs Switch

Slice S2SHIFTneighboring CLBs

– A switch matrix provides access

SwitchMatrix

Slice S1access to general routing resources

Slice S1

CIN

Slice S0 Local Routing

CINCIN CIN

11Sistemas Digitales II / Electrónica Digital II

Page 12: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

Virtex II – Detalle de Mitad del Slice

12Sistemas Digitales II / Electrónica Digital II

Page 13: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

Uso de la ‘Tabla de Búsqueda’q

• Combinatorial logic is stored in Look‐Up Tables (LUTs) 

– Also called Function Generators (FGs)– Capacity is limited by the number of i b h l i

00000

ZDCBA

inputs, not by the complexity• Delay through the LUT is constant

11100

00100

01000

11010

10010

11100

Combinatorial Logic

AB 01011

00011

...

C

D

Z

11111

00111

01011

13Sistemas Digitales II / Electrónica Digital II

Page 14: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

Implementación de SOPp

14Sistemas Digitales II / Electrónica Digital II

Page 15: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

Uso de los MUXFx

MUXF8 combines the two (f

F5F8CLB

Slice S3

MUXF7 outputs (from the CLB above or below)

F5F6

Slice S2MUXF6 combines slices S2 and S3

Slice S1 5F7

MUXF7 combines the two MUXF6 outputs

Slice S0

Slice S1 F5F6

p

MUXF6 combines slices S0 and S1Slice S0

F5 MUXF5 combines LUTs in each slice

15Sistemas Digitales II / Electrónica Digital II

Page 16: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

Clock Resources

16Sistemas Digitales II / Electrónica Digital II

Page 17: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

Clock Reources and Routingg

• Sixteen dedicated global clock multiplexers– Eight on the top‐center of the die, eight on the bottom‐center

– Driven by a clock input pad, a DCM, or local routing• Global clock multiplexers provide the following:

– Traditional clock buffer (BUFG) function

– Global clock enable capability (BUFGCE) – Glitch‐free switching between clock signals (BUFGMUX)g g ( )

• Up to eight clock nets can be used in each clock region of the device

– Each device contains four or more clock regions

17Sistemas Digitales II / Electrónica Digital II

Page 18: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

Digital Clock Manager (DCM)g g ( )

• Up to twelve DCMs per device– Located on the top and bottom edges of the die– Driven by clock input pads

• DCMs provide the following:

– Delay‐Locked Loop (DLL) – Digital Frequency Synthesizer (DFS) – Digital Phase Shifter (DPS)

• Up to four outputs of each DCM can drive onto global clock p p gbuffers

– All DCM outputs can drive general routing

18Sistemas Digitales II / Electrónica Digital II

Page 19: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

Digital Clock Manager (DCM)g g ( )

DCM functionsDCM functionsEliminate clock skew using Delay-Locked Loop (DLL)

Monitors clock skew on output and correctsMonitors clock skew on output and correctsPerforms frequency doublingCreates multiphase clocksCreates multiphase clocks

Fractional Digital Frequency Synthesizer (DFS)fOUT = M/N fIN

Clock conditioningClock conditioningClock buffering and signal translation

19Sistemas Digitales II / Electrónica Digital II

Page 20: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

Red de Relojj

20Sistemas Digitales II / Electrónica Digital II

Page 21: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

Digital Clock Manager (DCM)g g ( )

21Sistemas Digitales II / Electrónica Digital II

Page 22: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

Opciones de Configuración de Memoria RAMp g

22Sistemas Digitales II / Electrónica Digital II

Page 23: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

Block RAM

• Up to 3.5 Mb of RAM in 18‐kb blocks

– Synchronous read and write18‐kb block SelectRAM memory

• True dual‐port memory– Each port has synchronous 

DIADIPAADDRAWEA

18 kb block SelectRAM memory

read and write capability– Different clocks for each port 

WEAENASSRA

CLKADOA

DOPA

• Supports initial values• Synchronous reset on output 

DIBDIPB

WEBADDRB

latches• Supports parity bits

WEBENBSSRBCLKB DOPB

DOB

– One parity bit per eight data bits

23Sistemas Digitales II / Electrónica Digital II

Page 24: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

Control de Impedancia p

• DCI (digital controlled impedance) provides– Output drivers that match the impedance of the traces– On‐chip termination for receivers and transmitters

• DCI advantagesg– Improves signal integrity by eliminating stub reflections– Reduces board routing complexity and component count byReduces board routing complexity and component count by eliminating external resistors

– Eliminates the effects of temperature, voltage, and process p , g , pvariations by using an internal feedback circuit 

24Sistemas Digitales II / Electrónica Digital II

Page 25: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

Otro modo de DCI

25Sistemas Digitales II / Electrónica Digital II

Page 26: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

Switches de Conección SRAM

26Sistemas Digitales II / Electrónica Digital II

Page 27: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

Multiplicadoresp2’s-complement multipliers distributed across fabricacross fabric

Primarily to support DSPCascade connectionsCascade connections

Pipeline registers on inputs and outputspCan do 2 small width op

Can also be used forBarrel shiftersData storage

Some shared connections with adjacent block RAM

Sistemas Digitales II / Electrónica Digital II 27

Page 28: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

Bloque de E/Sq /

Sistemas Digitales II / Electrónica Digital II 28

Page 29: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

E/S Estandards/

• Allows direct connections to external signals of varied voltages g gand thresholds

– Optimizes the speed/noise tradeoff– Saves having to place interface components onto your board

• Differential signaling standards– LVDS, BLVDS, ULVDS– LDTLVPECL– LVPECL

• Single‐ended I/O standardsLVTTL LVCMOS (3 3V 2 5V 1 8V d 1 5V)– LVTTL, LVCMOS (3.3V, 2.5V, 1.8V, and 1.5V)

– PCI‐X at 133 MHz, PCI (3.3V at 33 MHz and 66 MHz) GTL GTLP– GTL, GTLP

– and more!

29Sistemas Digitales II / Electrónica Digital II

Page 30: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

E/S Estandares Soportados/ p

30Sistemas Digitales II / Electrónica Digital II

Page 31: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

Configuration del FPGA

MethodsSlave – configuration controlled by external device

Serial, parallel, JTAGMaster – FPGA controls configurationMaster FPGA controls configuration automatically

Serial parallelSerial, parallel

31Sistemas Digitales II / Electrónica Digital II

Page 32: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

Modo de Configuration EsclavoModo de Configuration Esclavo

32Sistemas Digitales II / Electrónica Digital II

Page 33: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

Modo de Configuration MaestrogModes

33Sistemas Digitales II / Electrónica Digital II

Page 34: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

Hard-Coded ProcessorPower PC 405 RISC Core

• Implementado en 0.13um• Puede procesar datos hasta 

300MHz• Controlador de Memoria 

(M i d d t(Memoria de datos e instrucciones separadas i l t d BRAM)implementeadas en BRAM)

• Logica de interface reloj/controlreloj/control

• CPU_FPGA interface

34Sistemas Digitales II / Electrónica Digital II

Page 35: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

Soft-Coded Processor – Altera Nios

35Sistemas Digitales II / Electrónica Digital II

Page 36: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

Virtex II – Dispositivos Comercialesp

36Sistemas Digitales II / Electrónica Digital II

Page 37: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

CLBs & SlicesCLBs & Slices

Each slice has 2 LUTs & 2 storage elements& 2 storage elements

37Sistemas Digitales II / Electrónica Digital II

Page 38: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

CLB Slice2 FFs or latches 2 LUTs for2 LUTs for combinational l ilogicSome LUTs can be used as distributed RAMdistributed RAM or ROM, or shift registersregistersCarry look-aheadyDedicated muxes 38Sistemas Digitales II / Electrónica Digital II

Page 39: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

Xilinx Virtex-5

Xilinx’s top of the line FPGA65 t h l65nm process technology

550MHz RAM blocks6-input LUTs

Serial connectivitySerial connectivityEthernet MACsR k t I/O i l 3 2GBRocket I/O serial 3.2GBpsPCI Express endpoint

Enhanced DSP blocks (25x18, 48b accum)1760 pin BGA with 1200 I/O1760 pin BGA with 1200 I/OEasyPath 39Sistemas Digitales II / Electrónica Digital II

Page 40: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

Xilinx Virtex 5 FamilyXilinx Virtex-5 Family

40Sistemas Digitales II / Electrónica Digital II

Page 41: Arreglo de CompuertasArreglo de Compuertas Proggpramables ...dea.unsj.edu.ar/sisdig2/FPGAs.pdf · almacena los bits de configuración e inmediatamente despp,ués de alimentar el sistema

3.125 Gb/s Transceiver/

41Sistemas Digitales II / Electrónica Digital II