Field Programmable Gate Array: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Recupero di 1 fonte/i e segnalazione di 0 link interrotto/i. #IABot (v1.6.4)
Nessun oggetto della modifica
Riga 1:
[[File:Altera Flex EPF10K20 20000 cell FPGA.jpg|thumb|FPGA contenente 20.000 [[porta logica|porte logiche]]]]
In [[elettronica digitale]], un dispositivo '''Field Programmable Gate Array''', solitamente abbreviato in '''FPGA''', è un [[circuito integrato]] le cui funzionalità sono [[programmazione|programmabili]] via [[softwarelinguaggi di descrizione dell'hardware]] ([[VHDL]], [[Verilog]], ecc.). Tali dispositivi consentono l'implementazionela realizzazione di [[Funzione booleana|funzioni logiche]] anche molto complesse, e sono caratterizzati da un'elevata [[scalabilità]]. Questo tipo di tecnologia ha assunto un ruolo sempre più importante nell'[[elettronica industriale]] così come nella [[ricerca scientifica]]. Grazie al continuo progredire delle tecniche di miniaturizzazione, le capacità di tali dispositivi sono aumentate enormemente nel corso di due soli decenni, durante i quali si è passati da poche migliaia di [[Porta logica|porte logiche]] a qualche milione di porte logiche per singolo dispositivo FPGA.
 
==Storia==
Riga 25:
I circuiti FPGA sono elementi che presentano caratteristiche intermedie rispetto ai dispositivi [[Application specific integrated circuit|ASIC]] (''Application Specific Integrated Circuit'') da un lato e a quelli con architettura [[Programmable Array Logic|PAL]] (''Programmable Array Logic'') dall'altro. L'uso di componenti FPGA comporta alcuni vantaggi rispetto agli ASIC: si tratta infatti di dispositivi standard la cui funzionalità da implementare non viene impostata dal produttore che quindi può produrre su larga scala a basso prezzo. La loro genericità li rende adatti a un gran numero di applicazioni come ''consumer'', comunicazioni, ''automotive'' eccetera. Essi sono programmati direttamente dall'utente finale, consentendo la diminuzione dei tempi di progettazione, di verifica mediante simulazioni e di prova sul campo dell'applicazione. Il grande vantaggio rispetto agli ASIC è che permettono di apportare eventuali modifiche o correggere errori semplicemente riprogrammando il dispositivo in qualsiasi momento. Per questo motivo sono utilizzati ampiamente nelle fasi di [[prototipizzazione]], in quanto eventuali errori possono essere risolti semplicemente riconfigurando il dispositivo. L'ambiente di progettazione è anche più ''[[user-friendly]]'' e di relativamente facile apprendimento. Di contro, per applicazioni su grandi numeri sono antieconomici perché il prezzo unitario del dispositivo è superiore a quello degli ASIC (che di converso hanno elevati costi di progettazione).
 
Il costo di tali dispositivi è oggi in rapida diminuzione: ciò li rende sempre di più una valida alternativa alla tecnologia [[standard cell]]. Usualmente vengono programmati con linguaggi come il [[Verilog]] o il [[VHDL]], ma non bisogna dimenticare la modalità "''schematic-entry''", che consente un approccio veloce e semplificato a tale tecnologia pur essendo di pari potenzialità. Molte case costruttrici (ad esempio [[Xilinx]] e [[Altera]]) forniscono gratuitamente sistemi di sviluppo che supportano quasi tutta la loro gamma di prodotti.
 
===Principali tecnologie===
Riga 54:
 
===Blocchi di ingresso/uscita===
I blocchi di ingresso/uscita si occupano della gestione dei segnali da e verso l'esterno del FPGA attraverso il controllo dei pin del chip. Nei dispositivi Xilinx, per esempio, ogni IOB controlla un pin che può essere configurato come input, output, bi-direzionale o ''tri-state''. Posizionati lungo il perimetro della matrice di CLB, gli IOB della famiglia Virtex sono composti da flip-flop dedicati alla sincronizzazione dei dati, da multiplexer che gestiscono i segnali in modalità DDR (''Double Data Rate'') e da buffer per la gestione dei diversi standard logici. I buffer permettono inoltre di controllare la rapidità di commutazione del segnale, detta slew[[velocità ratedi risposta]], per comunicazioni in alta frequenza con i dispositivi esterni, mentre il buffer in ingresso è a soglia programmabile per consentire l'interfacciamento del dispositivo FPGA con diversi standard logici quali [[transistor-transistor logic|TTL]], CMOS o PCI. Sono inoltre presenti delle resistenze di ''pull-up/pull-down'' che permettono di caratterizzare lo stato del piedino nelle situazioni di alta impedenza.
 
===Linee di interconnessione===