15
Elettronica dei Sistemi Digitali L-A Università di Bologna, sede di Cesena A.a. 2004-2005 Field-Programmable Gate Arrays Elettronica dei Sistemi Digitali Architettura dei Field- Programmable Gate Array Un FPGA è un circuito integrato digitale, composto da un insieme di: • blocchi logici programmabili • risorse di interconnessioni (linee + switch) • blocchi di I/O

Elettronica dei Sistemi Digitali L-Aromani/Dida01/lezioni/fpga.pdf · Adapted from: J.Rabaeyet al., “Digital Integrated Circuits”, ... Elettronica dei Sistemi Digitali Architettura

  • Upload
    dokhanh

  • View
    219

  • Download
    0

Embed Size (px)

Citation preview

1

Elettronica dei SistemiDigitali L-A

Università di Bologna, sede di Cesena

A.a. 2004-2005

Field-Programmable Gate Arrays

Elettronica dei Sistemi Digitali

Architettura dei Field-Programmable Gate Array

Un FPGA è un circuito integrato digitale, composto da un insieme di:• blocchi logici programmabili• risorse di interconnessioni

(linee + switch)• blocchi di I/O

2

Elettronica dei Sistemi Digitali

FPGA: Architettura

• Architettura di routing:– Segmenti di linee di diverse lunghezze (influisce su

ritardi, densità di integrazione)– Interruttori (switch) programmabili elettricamente.

• Densità di risorse logiche (logica+routing)– Progettazione “manuale” impossibile!– Necessità di tool di sintesi logica e place’n’route

efficienti (+ complicata sarà l’architettura, + difficile sarà il tool da realizzare e la possibilità di raggiungere densità e prestazioni ottime).

Elettronica dei Sistemi Digitali

Switch Programmabili

• Realizzano collegamenti elettrici tra le risorse di interconnessione

• Tre tipologie principali:– SRAM-based (con elementi di memoria

statica)– Antifusibili– Floating gate (tecnologia EPROM,E2PROM)

3

Elettronica dei Sistemi Digitali

Switch basati su SRAM• Ogni interruttore è controllato da

una cella di RAM statica• Mux o pass-gate• SRAM è volatile: devo

riprogrammare tutti gli switchall’accensione del dispositivo!!(quindi servirà una memoria permanente esterna…, ma la programmazione è comunque molto veloce).

• Serve molta area: >4 transistori solo per la cella di RAM (+ switch, + logica per la programmazione all’accensione).

• Si usano processi standard (costi bassi!)

• Prestazioni non eccellenti: ogni switch è una rete RC!!!

Elettronica dei Sistemi Digitali

Switch ad “antifusibili”

• L’antifusibile (antifuse) è un dispositivo a due terminali che– Se non programmato presenta una resistenza elettrica molto

elevata– In seguito all’applicazione di una tensione elevata (11-20V), si

“brucia” ed assume una resistenza molto bassa.– Diverse tecnologie: ONO, silicio amorfo, …– Piccole dimensioni (> integrazione)– Bassa resistenza (è possibile metterne molti in serie senza

alterare le prestazioni)– Serve circuiteria extra per gestire la programmazione e

distribuire le elevate correnti solo agli switch da “bruciare” (no altri switch, no blocchi logici!)

4

Elettronica dei Sistemi Digitali

Antifusibili ONO

antifuse polysilicon ONO dielectric

n+ antifuse diffusion

2 l From Smith97

Open by default, closed by applying current pulse

Adapted from: J.Rabaey et al., “Digital Integrated Circuits”, Copyright 2003 Prentice Hall/Pearson.

• ONO: Oxygen-Nitrogen-Oxygen

• si aggiungono degli step tecnologici per deporre uno strato di ONO dielettrico localmente

Elettronica dei Sistemi Digitali

Antifusibili in Si• Con step tecnologici extra si realizza

localmente uno strato di silicio amorfo• Con elevate correnti….

5

Elettronica dei Sistemi Digitali

Switch Floating-Gate• Stessa tecnologia delle EPROM-

E2PROM: programmazione permanente

• Si realizza un transistore con 2 gate (quello centrale è floating)

• Con alte tensioni è possibile immagazzinare carica elettrica nel gate flottante. Questo fa sì che la tensione di soglia del transistore si sposti verso l’alto, ottenendo transistori permanentemente disabilitati.

• La carica del floating gate può essere rimossa esponendo il chip a raggi UV (finestrella sul chip) o eletticamente.

• Si può eventualmente utilizzare per logica e routing

• Non serve una memoria esterna per programmare il dispositivo

• La resistenza dello switch chiuso è piuttosto alta. (ho consumo statico se uso logica come quella in figura!)

Elettronica dei Sistemi Digitali

Confronto delle tecnologie di programmazione per FPGA

6

Elettronica dei Sistemi Digitali

Architettura dei blocchi logici

• Possono avere diversi gradi di complessità • Indicati con LC, LE, CLB, etc. etc.• Concetto di granularità

– Diverse definizioni (numero di funzioni booleane implementabili, numero di nand-2 equivalenti, numero di transistors, numero di I/O,….)

– Fine-grain– Coarse-grain

Elettronica dei Sistemi Digitali

Architettura dei blocchi logici

• Confronto delle varie architetture confrontando l’implementazione di un blocco logico di riferimento:

(l’implementazione a NAND è equivalente)

cabf +=

7

Elettronica dei Sistemi Digitali

Blocchi logici “Fine Grain”

• Blocchi logici a grana fine, esempio:– Crosspoint Solutions:– Coppie di transistori

complementari– Isolamento si realizza

“spegnendo” una coppia di transistori

– Esistono anche strutture di RAM (come elemento di memorizzazione e per realizzare funzioni logiche)

Elettronica dei Sistemi Digitali

Blocchi logici “Fine Grain”

• Esempio: FPGA Plessey– Di base è un blocco

NAND– Un MUX realizza le

interconnessioni programmabili

– Un latch può essere utilizzato come elemento di memorizzazione (o reso trasparente)

– Collegandone 2 realizzo la funzione logica di riferimento

8

Elettronica dei Sistemi Digitali

Blocchi logici “Fine Grain”

• Vantaggi:– Essendo i blocchi elementari molto semplici

saranno sicuramente sfruttati pienamente.– Essendo i blocchi elementari di basso livello,

i tools di sintesi riescono a sfruttarli al meglio

• Svantaggi:– Richiedono un elevato numero di linee di

connessione e switch programmabili. Costosi in termini di area e di ritardo.

– Densità e velocità non così elevate.

Elettronica dei Sistemi Digitali

Blocchi logici “Coarse-Grain”• Esempio: blocco logico

Actel– Basato su multiplexer– 702 funzioni logiche

realizzabili

– Funzione logica di riferimento implementata con questa configurazione

– Pochi transistors, ma molti ingressi! (routing extra!...almax uso FPGA con antifuse)

))(()()( 22431143 zsysssxswsssf +++++=

9

Elettronica dei Sistemi Digitali

Look-up Table (LUT)

K22

• se K>5 le dimensioni sono eccessive!

• un tool di sintesi logica non riesce a sfruttarle pienamente… LUT troppo grande vengono sotto-utilizzate

• Una piccola RAM può essere utilizzata per realizzare funzioni logiche, se pre-memorizzo i risultati in memoria.

• Per una funzione logica a K ingressi serve una RAM da 2K x 1

• Implemento funzioni logiche combinatorie.

Elettronica dei Sistemi Digitali

Blocco logico Xilinx 3000

• basata su una LUT a 5 ingressi, riconfigurabile come 2 LUT a 4 ingressi(purchè non si usino più di 5 ingressi distinti)

ü cosi la risorsa viene sfruttata meglio se la funz. combinatoria hacomplessità minore

• logica sequenziale

• diversi MUX per collegare le uscite e i blocchi sequenziali

10

Elettronica dei Sistemi Digitali

Blocco logico Xilinx 4000

• 2 4-LUT collegate ad una 3-LUT con connessioni permanenti.

• La 3-LUT rischia di restare inutilizzata

• Ogni LUT può essere utilizzata come blocco di memoria

• Circuiti dedicati per il calcolo dei carryper le somme.

Elettronica dei Sistemi Digitali

Effetti della granularità sulla densità

• Se la granularità aumenta:– Il numero di blocchi necessari per

implementare una data funzione si riduce– È necessaria una circuiteria più sofisticata,

quindi il blocco occupa più area.

11

Elettronica dei Sistemi Digitali

Effetti della granularità sulla densità

• supponiamo di voler realizzare

• con 2-LUT servono 7 blocchi (=7*22=28 bits)

• con 3-LUT servono 3 blocchi (=3*23=24 bits)

• con 4-LUT serve 1 blocco (=1*24=16 bits)

cbadbcabdf ++=

Elettronica dei Sistemi Digitali

Effetti della granularità sulla densità• Design di riferimento realizzato con switch SRAM-based in tecnologia

1.2um con K-LUT• All’aumentare di K cala il numero di blocchi logici necessari• All’aumentare di K aumenta anche l’area necessaria per realizzare il

blocco logico stesso.

• Il routing occupa di solito il 70-90% dell’area totale di un FPGA• K=4 è un buon valore

12

Elettronica dei Sistemi Digitali

Effetti della granularità sulla densità• All’aumentare di K cala il numero di blocchi logici necessari• All’aumentare di K aumenta anche l’area necessaria per la

connettività del blocco logico.

• Il routing occupa di solito il 70-90% dell’area totale di un FPGA• K=4 è un buon valore

Elettronica dei Sistemi Digitali

Effetti della granularità sulla densità• L’area totale deve tenere in considerazione il contributo:

– Dei blocchi logici– Del routing

• Sommando le due curve mostrate in precedenza:

• K=4 è un buon valore

13

Elettronica dei Sistemi Digitali

Effetti della granularità sulle prestazioni

• all’aumentare di K

• il numero di livelli di logica necessari cala

• il ritardo di ogni blocco (e quindi di ogni livello) aumenta

• il ritardo dovuto al routingaumenta.

• i grafici mostrano i risultati per un design di riferimento, normalizzati rispetto al caso K=2

Elettronica dei Sistemi Digitali

Effetti della granularità sulle prestazioni

• è stato calcolato il percorso critico al variare di K e dei ritardi RC dovuti agli switch (normalizzato rispetto K=2)

• se il termine RC è basso, un buon valore è K=3-4

• se il termine RC è alto, un buon valore è K=6-7

14

Elettronica dei Sistemi Digitali

Routing• Alcune definizioni:

– Wire segment: una linea non interrotta da switch programmabili. Gli switch possono comunque essere collegati. (ogni estremità avrà uno switch)

– Track: una sequenza di uno o più “wire segments” nella stessa linea

– Routing channel: un gruppo di “tracks” parallele.

• Strutture di base:

– Connection block (connettività da in e out di un blocco logico ai wiresegments presenti nel canale)

– Switch block (connettività tra wiresegments orizzontali e verticali

Elettronica dei Sistemi Digitali

Architettura Routing Xilinx 3000• 4 tipi di wire-segments:

– Connessioni general purpose che attraversano gli switch negli switch blocks

– Interconnessioni dirette: wire segmentsche connettono l’uscita di ogni blocco logico direttamente a 4 vicini

– Linee lunghe: attraversano tutto il dispositivo (alto fan-out ma ritardo uniforme e noto)

– Linea di clock (una linea dedicata per fornire il clock a tutto il dispositivo. Basso skew. Connettività solo verso il pin di clock delle logiche sequenziali dei blocchi logici.

• Un connection block collega gli LB al canale. La tecnologia è SRAM-based, quindi per motivi di spazio ogni pin può essere collegato a 2 o 3 wire seg

• Anche nello switch block non sono presenti TUTTE le possibili connessioni.

15

Elettronica dei Sistemi Digitali

Architettura Routing Xilinx 4000

• Simile a Xilinx 3000• Migliorato il numero di connessioni tra uscite LB e tracks.• Alcune tracks non attraversano sempre uno switch.

Elettronica dei Sistemi Digitali

Architettura Routing Actel

• struttura “orizzontale”

• ogni ingresso è collegabile a TUTTE le tracks del canale nello stesso lato

• le uscite si estendono fino a 2 canali oltre il blocco logico (sopra e sotto). Sono collegabili ad ogni track che venga intersecata.

• Tutte le piste verticali si possono collegare a quelle orizzontali qualora si incrocino

• I canali orizzontali sono divisi in segmenti di diverse lunghezze.

• Freeways verticali (1 per LB)