elettronica dei sistemi digitali l-aromani/dida01/lezioni/fpga.pdf · adapted from: j.rabaeyet al.,...
TRANSCRIPT
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)