23
LOGICHE HARDWARE LOGICHE HARDWARE PROGRAMMABILI PROGRAMMABILI FPGA based FPGA based

LOGICHE HARDWARE PROGRAMMABILI

Embed Size (px)

DESCRIPTION

LOGICHE HARDWARE PROGRAMMABILI. FPGA based. Componenti Elettronici. A pplication S pecific. ASICs. I ntegrated C ircuit. ASIC s array based. 1. 2. Non è necessariamente programmabile. PLDs. a. b. c. Predefined link. Programmable link. N/A. SPLDs. CPLDs. e. &. l. a. b. c. - PowerPoint PPT Presentation

Citation preview

Page 1: LOGICHE HARDWARE  PROGRAMMABILI

LOGICHE HARDWARE LOGICHE HARDWARE PROGRAMMABILIPROGRAMMABILI

FPGA basedFPGA based

Page 2: LOGICHE HARDWARE  PROGRAMMABILI

Componenti ElettroniciComponenti Elettronici

Page 3: LOGICHE HARDWARE  PROGRAMMABILI

IIntegratedntegrated C CircuitircuitAApplicationpplication S Specificpecific ASICsASICs

Page 4: LOGICHE HARDWARE  PROGRAMMABILI

ASICASICss array basedarray based

1

2Non è necessariamente

programmabile

Page 5: LOGICHE HARDWARE  PROGRAMMABILI

SSimpleimple PLD PLDssa b c

&

&

&

a !a b !b c !c

N/A

Programmable AND array

Pro

gra

mm

ab

leO

R a

rra

y

Predefined link

Programmable link

l l l

w x y

N/A

N/A

a b c

l l l

Address 0 &

Address 1 &

Address 2 &

Address 3 &

Address 4 &

Address 5 &

Address 6 &

Address 7 &

a !a b !b c !c

!a !c!b& &

!a c!b& &

!a !cb& &

!a cb& &

a !c!b& &

a c!b& &

a !cb& &

a cb& &

Predefined AND array

Pro

gram

ma

ble

OR

arr

ay

w x y

Predefined link

Programmable link

a b c

l l l

&

&

&

&

&

&

a !a b !b c !c

ProgrammableAND array

Pre

de

fin

ed

OR

arr

ay

w x y

Predefined link

Programmable link

SPLD - PAL

SPLD - PLA

SPLD - PROM

PLDs

SPLDs CPLDs

PLAsPROMs PALs GALs etc.

Decoder Encoder

Programmabilitàesclusivamentedella matrice diinterconnessione

Page 6: LOGICHE HARDWARE  PROGRAMMABILI

CComplexomplex PLD PLDss

ProgrammableInterconnect

matrix

Input/output pinsSPLD-like

blocks

100 wires

30 wires

Programmablemultiplexer

Altera propose una architettura con

connettività incompleta, realizzata in tecnologia

CMOS con celle di memoria EPROM.

A causa dell'eccessivo consumo di potenza e della bassa velocità non posso

garantire il 100% di connettività

Page 7: LOGICHE HARDWARE  PROGRAMMABILI

PLDPLDss v.s.v.s. ASIC ASICssPLDs ASICs

Standard Cell

Full Custom

Gate Arrays

Structured ASICs*

SPLDs

CPLDs

*Not available circa early 1980s

TheGAP

Circuiti integrati per applicazioni specifiche (ASIC), che permettono di

realizzare sistemi di grande complessità, ma richiedono una fase di progetto e realizzazione lunga e

costosa, e non sono riconfigurabili.

Circuiti integrati programmabili, versatili e

veloci da progettare e realizzare, ma limitati a funzioni relativamente

semplici.

Page 8: LOGICHE HARDWARE  PROGRAMMABILI

FPGA FPGA v.s.v.s. CPLD CPLDLa struttura base di FPGA e CPLD è simile: una matrice di blocchi logici

programmabili collegati da una griglia di interconnessioni, anch'esse programmabili. Le principali differenze sono a livello architetturale e spesso sono abbastanza sfumate:

Complessità: per i CPLD tipicamente varia da 1 Kgate a 100 Kgate, per le FPGA dal 10 Kgate a 10 Mgate

Granularità: nei CPLD si trova un numero ridotto (1 100) di blocchi logici programmabili di tipo PLA e di dimensioni relativamente grandi (alcune decine di ingressi), con un sistema di interconnessioni semplice; nelle FPGA si trova un numero maggiore di blocchi logici (100 100K) di dimensioni ridotte (2 6 ingressi, 1 o 2 registri), con una griglia di interconnessioni molto complessa.

Ritardi: nei CPLD i tempi di propagazione complessivi sono dominati dai blocchi logici e il contributo delle interconnessioni può essere calcolato a priori abbastanza accuratamente; nelle FPGA il contributo delle interconnessioni domina i tempi di propagazione, e dipende fortemente dal piazzamento dei blocchi logici, per cui non può essere stimato accuratamente a priori

Meccanismo di programmazione: nei CPLD più spesso è E2PROM oppure FLASH, nelle FPGA SRAM o antifusibili

Page 9: LOGICHE HARDWARE  PROGRAMMABILI

FFieldield P Programmablerogrammable

Programmableinterconnect

Programmable

logic blocks

• componenti proposti per la prima volta da Xilinx del 1984

• realizzati in tecnologia CMOS con memoria di configurazione SRAM

• architettura simile ai primi CPLD ma con un numero più elevato di blocchi logici programmabili più semplici, immersi in una griglia di interconnessioni con matrici di commutazione agli incroci

FPGAFPGAGGate ate AArrayrray

Page 10: LOGICHE HARDWARE  PROGRAMMABILI

• look-up table (LUT) per realizzare una qualsiasi funzione combinatoria a 35 ingressi

• possibilità di salvare il risultato in un registro

• ingresso ausiliario per combinare più funzioni logiche attraverso un MUX

Esempio di Esempio di blocco logico blocco logico programmabileprogrammabile

3-inputLUT

abc

flip-flop

clock

muxy

qd

?

Page 11: LOGICHE HARDWARE  PROGRAMMABILI

Funzionamento di una Funzionamento di una LUT a LUT a SRAMSRAM

• i segnali di selezione del MUX diventano gli ingressi della funzione

• il contenuto delle celle SRAM determina la funzione logica realizzata dalla LUT

• riscrivendo il contenuto della SRAM si ottiene una nuova funzione logica

|

&ab

cy

y = (a & b) | !c

Required function Truth table

1011101

000

001

010

011

100

101

110

1111

y

a b c y

00001111

00110011

01010101

10111011

SRAM cells

Programmed LUT

8:1

Mul

tiple

xer

a b c

Page 12: LOGICHE HARDWARE  PROGRAMMABILI

Moduli funzionali specificiModuli funzionali specifici

• sommatori

• moltiplicatori

• unità MAC

• memorie RAM

• core di microprocessori

• interfaccie di I/O veloci

Le FPGA spesso

includono moduli

funzionali specifici?

Page 13: LOGICHE HARDWARE  PROGRAMMABILI

FPGA e CPLD: FPGA e CPLD: progettoprogetto

La fase di progetto di FPGA/CPLD è in buona parte simile a quella di un ASIC supportata da un linguaggio HDL e da strumenti CAD per la

simulazione e la sintesi i passi del flusso di progettazione, dal concepimento dell'idea alla

derivazione dello schema circuitale a livello logico (rete di porte logiche), sono gli stessi

le differenze riguardano essenzialmente il progetto a livello fisico: un ASIC richiede il piazzamento delle celle di libreria e il loro collegamento tramite connessioni create ad hoc; in un FPGA/CPLD il piazzamento consiste nell'allocazione delle risorse logiche disponibili sul componente e in una opportuna configurazione della griglia di interconnessioni

Page 14: LOGICHE HARDWARE  PROGRAMMABILI

FPGA/CPLD: programmazione del FPGA/CPLD: programmazione del componentecomponente

Il risultato della fase di progetto è un insieme di bit di configurazione (configuration stream), che viene caricato nel componente attraverso un dispositivo di

programmazione o semplicemente attraverso terminali dedicati sul componente stesso. I bit di configurazione fissano lo stato (aperto/chiuso) degli interruttori che determinano

la funzione svolta dai blocchi programmabili e la topologia delle interconnessioni.

(a) Host computer (b) Device programmer

Unprogrammeddevice

Programmeddevice

Page 15: LOGICHE HARDWARE  PROGRAMMABILI

Xilinx Spartan-IIXilinx Spartan-II - - Architecture Architecture

?

Page 16: LOGICHE HARDWARE  PROGRAMMABILI

Xilinx Spartan-IIXilinx Spartan-II - - CLBCLB Each Each CLBCLB has two identical has two identical SlicesSlices.. SliceSlice has has two logic cellstwo logic cells::

LUT 4 inputLUT 4 input Carry logicCarry logic RegistersRegisters CLBCLB

Page 17: LOGICHE HARDWARE  PROGRAMMABILI

Xilinx Spartan-IIXilinx Spartan-II - Slice - Slice

Slice

?

Page 18: LOGICHE HARDWARE  PROGRAMMABILI

Xilinx Spartan-IIXilinx Spartan-II -- Slice details Slice details

DFF or Latch

Page 19: LOGICHE HARDWARE  PROGRAMMABILI

Xilinx Spartan-IIXilinx Spartan-II -- expansion expansion MUXsMUXs

MUXF5 combines 2 LUTs to create: 4×1 multiplexer or any 5-input function (LUT5) or selected functions up to 9 inputs

MUXF6 combines 2 slices to create: 8×1 multiplexer or any 6-input function (LUT6) or selected functions up to 19 inputs

00 / 1a

bcd

abcd

0

0

Page 20: LOGICHE HARDWARE  PROGRAMMABILI

Xilinx Spartan-IIXilinx Spartan-II -- distributed distributed RAMRAM

Distributed RAMDistributed RAM 1 LUT = 161 LUT = 16×1 bit RAM×1 bit RAM cascade LUT to increment RAM cascade LUT to increment RAM

sizesize 16-bit shift register …16-bit shift register …

Each LUT can be configured as a …Each LUT can be configured as a …

Page 21: LOGICHE HARDWARE  PROGRAMMABILI

Xilinx Spartan-IIXilinx Spartan-II -- interconnectinterconnect

Types of interconnect: Local General-Purpose Dedicated I/O pin

Page 22: LOGICHE HARDWARE  PROGRAMMABILI

Xilinx Spartan-IIXilinx Spartan-II -- types of interconnecttypes of interconnect

Page 23: LOGICHE HARDWARE  PROGRAMMABILI

Xilinx Spartan-IIXilinx Spartan-II -- DetailsDetails

Horizontal on-chip bussesHorizontal on-chip busses

Clock distributionClock distribution