Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti logici programmabili – Simple PLD: PROM, PLA PAL – Complex PLD e FPGA: caratteristiche e confronto
35
Embed
Andrea Neviani – Laboratorio di elettronica digitale 1 Università di Padova - DEI Laboratorio di elettronica digitale Lezione 3 Introduzione ai circuiti.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Andrea Neviani – Laboratorio di elettronica digitale 1
Università di Padova - DEI
Laboratorio di elettronica digitaleLezione 3
Introduzione ai circuiti logici programmabili– Simple PLD: PROM, PLA PAL– Complex PLD e FPGA: caratteristiche e confronto
La struttura tipica di un SPLD basato su una ROM programmabile è fatta da un piano AND predefinito, che corrisponde al decodificatore di riga di una ROM, e da un piano OR programmabile.
Il piano AND fornisce tutti i mintermini degli N ingressi (in questo caso N=3). Il piano OR consente di fare la somma logica di uno o più mintermini.
Una PLA (programmable logic array) è simile a una PROM ma ha sia il piano AND che il piano OR programmabili. A differenza delle PROM, la dimensione del piano AND è indipendente dal numero di ingressi. Lo svantaggio principale è una minore velocità perché il segnale in una PLA deve attraversare due livelli di collegamenti programmabili (che sono più lenti di un collegamento fisso).
L'architettura PAL (programmable array logic) è nata come tentativo di risolvere il problema della bassa velocità delle PLA, mantenendo la programmabilità del piano AND.
Il piano OR predefinito limita il numero di implicanti che contribuiscono ad ogni uscita (nell'esempio a fianco ci sono due implicanti per uscita).
CPLD: il problema delle interconnessioni programmabili
I primi CPLD (Mega-PAL di Monolithic Memories Inc.) risultarono un fallimento a causa dell'eccessivo consumo di potenza e della bassa velocità, entrambi dovuti alla scelta di garantire il 100% di connettività (ogni uscita di un blocco poteva essere connessa a qualunque ingresso di un altro blocco).
Altera propose una architettura con connettività incompleta, realizzata in tecnologia CMOS con celle di memoria EPROM.
Subito dopo l'avvento dei primi CPLD, è emersa chiaramente una lacuna tra la categoria dei circuiti integrati programmabili, versatili e veloci da progettare e realizzare, ma limitati a funzioni relativamente semplici, e la categoria dei 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.
• 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
• 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
Andrea Neviani - L.E.D. 15
FPGA e CPLD: confronto
La 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/FLASH, nelle FPGA SRAM o antifusibili
Le FPGA spesso includono moduli funzionali specifici come:
• sommatori
• moltiplicatori
• unità MAC
• memorie RAM
• core di microprocessori
• interfaccie di I/O veloci
Andrea Neviani - L.E.D. 17
FPGA e CPLD: progetto
• 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
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.
Andrea Neviani - L.E.D. 19
Xilinx Spartan-II: architecture
Andrea Neviani - L.E.D. 20
Xilinx Spartan-II CLB
• Each CLB has two identical slices.• Slice has two logic cells:
– LUT.– Carry logic.– Registers.
Andrea Neviani - L.E.D. 21
Xilinx Spartan-II: CLB
Andrea Neviani - L.E.D. 22
Xilinx Spartan-II: slice
Andrea Neviani - L.E.D. 23
Spartan-II CLB details
• Each lookup table can be used as a 16-bit synchronous RAM or 16-bit shift register.
• Arithmetic logic includes an XOR gate.• Each slice includes a mux to combine the results of the two
function generators in the slice.• Register can be configured as DFF or latch.• Has three-state drivers (BUFTs) for on-chip busses.
Andrea Neviani - L.E.D. 24
Spartan-II CLB details
Andrea Neviani - L.E.D. 25
Spartan-II CLB operation
• Arithmetic:– Carry block includes XOR gate.– Use LUT for carry, XOR for sum.
• Each slice uses F5 mux to combine results of multiplexers.• F6 mux combines outputs of F5 muxes.• Registers can be FF/latch; clock and clock enable.• Includes three-state output for on-chip bus.
Andrea Neviani - L.E.D. 26
Spartan-II expansion MUXs
• 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
Andrea Neviani - L.E.D. 27
Spartan-II distributed RAM
• … or as distributed RAM– 1 LUT = 16×1 bit RAM
– cascade LUT to increment RAM size
• Each LUT can be configured as a 16-bit shift register …
Andrea Neviani - L.E.D. 28
Spartan-II interconnect
• Types of interconnect:– local;– general-purpose;– dedicated;– I/O pin.
Andrea Neviani - L.E.D. 29
Spartan-II interconnect
Andrea Neviani - L.E.D. 30
Spartan-II general-purpose routing
• Provides majority of routing resources:– General routing matrix (GRM) connects horizontal/vertical
channels and CLBs.– 24 interconnect between adjacent GRMs.– 96 hex lines connect GRM to GRMs six blocks away.– 12 longlines span the chip.
Andrea Neviani - L.E.D. 31
Spartan-II general-purpose routing
• Relationship between GRM, hex lines, and local interconnect: