Field Programmable Gate Array: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
mNessun oggetto della modifica |
Archive.today ___domain not accessible from Italy (x1)) #IABot (v2.0.9.5) (GreenC bot |
||
(95 versioni intermedie di 48 utenti non mostrate) | |||
Riga 1:
[[File:Altera Flex EPF10K20 20000 cell FPGA.jpg|thumb
Un '''Field Programmable Gate Array''' (solitamente abbreviato in '''FPGA'''), in [[elettronica digitale]], è un [[dispositivo logico programmabile]] ovvero genericamente un [[dispositivo (informatica)|dispositivo]] [[hardware]] elettronico
In [[elettronica digitale]], un dispositivo '''Field Programmable Gate Array''', solitamente abbreviato in '''FPGA''', è un [[circuito integrato]] le cui funzionalità sono programmabili via [[software]]. Tali dispositivi consentono l'implementazione 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.▼
formato da un [[circuito integrato]] le cui funzionalità logiche di elaborazione sono appositamente [[programmazione (informatica)|programmabili]] e modificabili tramite opportuni [[linguaggio di descrizione hardware|linguaggi di descrizione hardware]].
==Storia ==▼
{{Vedi anche|Programmable Logic Device}}
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 componenti FPGA sono stati introdotti nella seconda metà degli [[anni '80]] come terza generazione di PLD ([[Programmable Logic Device]]), sviluppati presso i laboratori della [[Harris Semiconductor]]. Ulteriori sviluppi vennero realizzati con le [[Read Only Memory]], delle memorie [[CMOS]] e delle tecnologie [[antifuse]] che vennero tutte implementate in tali dispositivi.
A partire dalla seconda metà degli [[anni '80]], dopo i primi modelli prodotti da [[Altera]] e la realizzazione dell'XC2064 di [[Xilinx]] e l'implementazione della [[SRAM]] su larga scala negli [[anni '90]], l’industria del settore ha avuto una forte espansione, grazie anche ai continui progressi tecnologici nel settore dei [[semiconduttori]], raggiungendo nel 2005 una quota di mercato vicina ai 2 miliardi di dollari.
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 acquisizione. 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).▼
== Caratteristiche ==
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, e peraltro, 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.▼
=== Tipologia ===
▲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
▲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,
▲==Storia==
Andamento negli anni del numero di porte logiche presenti su circuiti FPGA:▼
▲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
* 1982: 8192 porte logiche; Burroughs Advances Systems Group; processore S-Type 24 bit per I/O riprogrammabili.▼
* 1987: 9,000 porte logiche, Xilinx▼
* 1992: 600 000 porte logiche, Naval Surface Warfare Department▼
* 2000-2010: Milioni.▼
Grazie alla versatilità di questi processori si stanno allargando i campi di utilizzo in diversi settori per i quali queste schede inizialmente non erano state progettate: ad esempio per l'attività di mining delle criptovalute, un campo inizialmente combattuto solo dai processori ASIC e dalle GPU.
Dimensione del mercato:▼
* 1985: Il primo dispositivo FPGA in commercio è stato XC2064 di Xilinx.▼
* 1987: 14 000 000 $▼
* ~1993: >385 000 000 $▼
* 2005: 1.9 miliardi di dollari.<ref name="instat">Dylan McGrath, EE Times, "[http://www.eetimes.com/news/design/business/showArticle.jhtml?articleID=188102617 FPGA Market to Pass $2.7 Billion by '10, In-Stat Says]". May 24, 2006. Retrieved February 5, 2009.</ref>▼
* 2010: Si stima 2.75 miliardi.<ref name="instat"/>▼
▲==Principali tecnologie==
* [[SRAM]] - Tecnologia basata su tecnologia a memoria statica [[CMOS]], in uso. Le SRAM-FPGA sono programmabili e riprogrammabili molte volte, e richiedono l'utilizzo di dispositivi esterni per essere configurate.
* [[Antifusibile]] - Circuiti programmabili una sola volta (''One-time programmable''); CMOS.
* [[Programmable Read Only Memory|PROM]] - Circuiti programmabili una sola volta; obsoleta.
* [[EPROM]] - I dispositivi
* [[EEPROM]] - A differenza dei precedenti circuiti, la cancellazione dei dati avviene per via elettrica.
* [[Memoria flash|Flash]] - Tecnologia EPROM basata su memoria flash, si tratta di dispositivi che possono essere riprogrammati. Solitamente una cella di memoria flash è più piccola di una equivalente cella EEPROM, ed è anche meno costosa da fabbricare. CMOS.
* [[Fusibile]] - Circuiti programmabili una sola volta; bipolare; obsoleta.
==Principali produttori==▼
[[Xilinx]] e [[Altera]] sono (2014) i due maggiori fabbricatori di FPGA.<ref>{{Cite web |first=John |last=Edwards |work=EDN |url=http://www.edn.com/article/CA6339519.html |title=No room for Second Place: Xilinx and Altera slug it out for supremacy in the changing PLD market |date=June 1, 2006 |accessdate=May 11, 2012|doi= }}</ref> Le due aziende sono rivali "storiche", e insieme controllano oltre l'80% del mercato.<ref>{{cite web|work=Seeking Alpha|url=http://seekingalpha.com/article/85478-altera-and-xilinx-report-the-battle-continues|title= Altera and Xilinx Report: The Battle Continues|date=July 17, 2008|year=2008|accessdate=November 13, 2013}}</ref> Sia Xilinx che Altera forniscono un software libero per [[Microsoft Windows|Windows]] e [[Linux]] che consente l'implementazione della logica nel dispositivo e rende possibile la gestione delle singole risorse.<ref>{{cite web|title=Xilinx ISE WebPACK|url=http://www.xilinx.com/ise/logic_design_prod/webpack.htm}}</ref><ref>{{cite web|title=Quartus II Web edition software|url=https://www.altera.com/support/software/download/altera_design/quartus_we/dnl-quartus_we.jsp}}</ref> Tra gli altri produttori vi sono [[Lattice Semiconductor]] (dispositivi SRAM con memorie flash integrate) [[Actel]] (ora [[Microsemi]], produce dispositivi antifuse), [[SiliconBlue Technologies]], [[Achronix]],<ref>{{cite web|title=Achronix to use Intel's 22 nm manufacturing|url=http://newsroom.intel.com/community/intel_newsroom/blog/2010/11/01/chip-shot-achronix-to-use-intel-s-22nm-manufacturing}}</ref> e [[QuickLogic]]. Nel marzo 2010, [[Tabula (azienda)|Tabula]] annuncia l'introduzione della propria tecnologia basata su logica time-multiplexed.<ref>{{cite web|title=Tabula's Time Machine - Micro Processor Report |url=http://www.tabula.com/news/M11_Tabula_Reprint.pdf }}</ref>▼
==Struttura==
[[File:FPGA cell example.png|thumb|
[[Image:switch box.svg|thumb|
La struttura di
===Blocchi logici configurabili===
I blocchi CLB sono composti solitamente da due o quattro celle logiche (''logic cell''), che eseguono le [[Funzione booleana|operazioni booleane]]. Ogni logic cell è solitamente composta da una o più [[
I CLB possono essere connessi fra loro, permettendo così di realizzare funzioni booleane complesse. Le LUT sono composte da una memoria SRAM da 16 bit e da un multiplexer a 4 ingressi: una volta configurate possono generare qualsiasi funzione logica a quattro ingressi ciascuna. Vi sono anche le interconnessioni relative alla logica di set/reset e chip enable, ai segnali di clock, e ai segnali provenienti dalle altre slice del dispositivo. La scelta di utilizzare LUT a soli quattro ingressi risiede nel fatto che la complessità di una LUT cresce esponenzialmente all'aumentare del numero di ingressi, e risulta dunque poco gestibile.
===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
===Linee di interconnessione===
Le linee di interconnessione hanno invece il compito di mettere in comunicazione le diverse risorse del dispositivo. Si possono distinguere due tipi di interconnessione: le linee fisse e le matrici di scambio, dette anche ''switch matrix''. Le linee fisse si dividono in linee "corte" e linee "lunghe": le linee "corte" sono interconnessioni che connettono CLB adiacenti, minimizzando il ritardo del segnale; le linee "lunghe" consentono invece di mettere in comunicazione risorse fra loro distanti 6 CLB tramite percorsi non configurabili, che non attraversano le matrici di scambio e che sono pertanto caratterizzati dal non introdurre ritardi significativi. Le matrici di scambio, infine, sono reti di pass-transistor programmabili e comunicanti. In un dispositivo SRAM-FPGA le linee di interconnessione sono fisse, e ciò che viene programmato sono le connessioni fra linee diverse: la maggior parte delle interconnessioni avvengono fra due lati diversi delle matrici di scambio, e sono abilitate da pass-transistor.
== Utilizzo ==
▲
== Dati sulla diffusione==
=== Cronologia dell'incremento sull'utilizzo ===
▲Andamento negli anni del numero di porte logiche presenti su circuiti FPGA:
▲* 1982: 8192 porte logiche; Burroughs Advances Systems Group; processore S-Type 24 bit per I/O riprogrammabili.
▲* 1987: 9,000 porte logiche, Xilinx
▲* 1992: 600 000 porte logiche, Naval Surface Warfare Department
▲* 2000-2010: Milioni.
* 2019: 10.2 milioni (Intel Stratix GX 10M)
▲Dimensione del mercato:
▲* 1985: Il primo dispositivo FPGA in commercio è stato XC2064 di Xilinx.
▲* 1987: 14 000 000 $
▲* ~1993: >385 000 000 $
▲* 2005: 1.9 miliardi di dollari.<ref name="instat">Dylan McGrath, EE Times,
* 2020: si stima un mercato di 8.5 miliardi di dollari.
[[Xilinx]] e [[Altera]] al 2014 erano i due maggiori fabbricatori di FPGA.<ref>{{Cita web |nome=John |cognome=Edwards |sito=EDN |url=http://www.edn.com/article/CA6339519.html |titolo=No room for Second Place: Xilinx and Altera slug it out for supremacy in the changing PLD market |data=1º giugno 2006 |accesso=11 maggio 2012 |urlmorto=sì |urlarchivio=https://archive.is/20120728124831/http://www.edn.com/article/CA6339519.html |dataarchivio=28 luglio 2012 }}</ref> Le due aziende sono rivali "storiche", e insieme controllano oltre l'80% del mercato.<ref>{{Cita web|sito=Seeking Alpha|url=http://seekingalpha.com/article/85478-altera-and-xilinx-report-the-battle-continues|titolo= Altera and Xilinx Report: The Battle Continues|data=17 luglio 2008|anno=2008|accesso=13 novembre 2013}}</ref>
Sia Xilinx sia Altera forniscono il relativo software di sviluppo per [[Microsoft Windows|Windows]] e [[Linux]], in versioni gratuite o a pagamento, e con licenza [[Software proprietario|proprietaria]]<ref>{{Cita web|nome=Xilinx Inc.|sito=Xilinx.com|url=http://www.xilinx.com/support/documentation/sw_manuals/end-user-license-agreement.txt|titolo=End User License Agreement|accesso=15 ottobre 2015|urlmorto=sì|urlarchivio=https://web.archive.org/web/20151017142617/http://www.xilinx.com/support/documentation/sw_manuals/end-user-license-agreement.txt|dataarchivio=17 ottobre 2015}}</ref><ref>
▲
==Note==
Line 60 ⟶ 77:
==Bibliografia==
* {{
* {{
== Voci correlate ==
* [[Antifusibile]]
* [[Gate array]]
* [[Linguaggio di descrizione hardware]]
* [[Programmable
* [[Programmable Logic Device]]
* [[Programmable Read Only Memory]]
* [[SRAM]]
* [[Verilog]]
* [[VHDL]]
== Altri progetti ==
{{interprogetto|
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{FOLDOC|2=field-programmable gate array}}
*
* [https://www.youtube.com/watch?v=keAftEcTZKA ''ASIC e FPGA - Le differenze che contano davvero'']'', YouTube''
* {{en}}[http://www.eecg.toronto.edu/~vaughn/challenge/fpga_arch.html Vaughn Betz's FPGA Architecture Page]▼
* {{cita web|1=http://rcs.uncc.edu/|2=University of North Carolina at Charlotte's Reconfigurable Computing Laboratory|lingua=en|accesso=1º gennaio 2014|urlarchivio=https://web.archive.org/web/20130820024712/http://rcs.uncc.edu/|dataarchivio=20 agosto 2013|urlmorto=sì}}
▲* {{
* {{cita web|1=http://www.fpgacenter.com/|2=Tutorials and Examples on FPGAs|lingua=en|accesso=1 gennaio 2014|dataarchivio=5 gennaio 2014|urlarchivio=https://web.archive.org/web/20140105120901/http://fpgacenter.com/|urlmorto=sì}}
{{Logica programmabile}}
{{Portale|elettronica|elettrotecnica}}▼
{{Controllo di autorità}}
[[Categoria:Circuiti elettronici configurabili]]
|