Field Programmable Gate Array: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Etichette: Modifica da mobile Modifica da web per mobile
m Correzione e miglioramento ortografico
Riga 1:
[[File:Altera Flex EPF10K20 20000 cell FPGA.jpg|thumb|FPGA contenente 20.000 [[porta logica|porte logiche]]]]
Un '''Field Programmable Gate Array''' (solitamente abbreviato in '''FPGA'''), in [[elettronica digitale]], indica un [[dispositivo]]
formatiformato da un [[circuito integrato]] le cui funzionalità sono [[programmazione|programmabili]] via linguaggi di descrizione dell'hardware.
 
==Storia==
Riga 24:
Esistono diversi tipi di FPGA, che comprendono sia dispositivi programmabili una sola volta, sia dispositivi riprogrammabili un grande numero di volte. I primi, detti [[Programmable Read Only Memory|OTP]] (''One Time Programmable''), sono costituiti da componenti il cui stato di funzionamento cambia in modo permanente, permettendo di mantenere la configurazione allo spegnimento del dispositivo. Alla seconda categoria appartengono i dispostivi basati su tecnologia [[SRAM]] (''Static Random Access Memory''), i quali devono essere riprogrammati ad ogni accensione, avendo una memoria di configurazione volatile.
 
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, cheil quindiquale può quindi 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 (chei di conversoquali hanno spesso, però, più 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.