Field Programmable Gate Array: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Archive.today ___domain not accessible from Italy (x1)) #IABot (v2.0.9.5) (GreenC bot
 
(96 versioni intermedie di 48 utenti non mostrate)
Riga 1:
[[File:Altera Flex EPF10K20 20000 cell FPGA.jpg|thumb|right|FPGA contenente 20.000 [[porta logica|porte logiche]]]]
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 ==
Esistono diverse tipologie di FPGA, che comprendono sia dispositivi programmabili una sola volta, sia dispositivi riprogrammabili un grande numero di
{{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 dispostividispositivi 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 comein ambito ''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 acquisizioneapprendimento. 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).
==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, epur peraltro,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.
* 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:
 
==Principali=Le principali tecnologie===
* 1985: Il primo dispositivo FPGA in commercio è stato XC2064 di Xilinx.
* [[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. In uso.
* 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]]. Le SRAM-FPGA sono programmabili e riprogrammabili molte volte, e richiedono l'utilizzo di dispositivi esterni per essere configurate. In uso.
* [[Antifusibile]] - Circuiti programmabili una sola volta (''One-time programmable''); CMOS.
* [[Programmable Read Only Memory|PROM]] - Circuiti programmabili una sola volta; obsoleta.
* [[EPROM]] - I dispositivi basatubasati su tecnologia EPROM possono essere riprogrammati mediante la cancellazione dei dati precedentemente configurati con [[radiazione ultravioletta]]. CMOS; obsoleta.
* [[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&nbsp;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|350 px|rightupright=1.6|Descrizione semplificata di una ''logic cell'', in cui sono mostrate due [[Look-UpLookup Tabletable|LUT]] a 43 input, un [[full-adder]] (FA) e un [[flip-flop]] di tipo D.]]
[[Image:switch box.svg|thumb|350 px|rightupright=1.6|Le matrici di scambio (''switch matrix'') sono costituite da pass-transistor programmabili finalizzati all'instradamento dei segnali all'interno dell'organizzazione matriciale che costituisce l'FPGA]]
La struttura di unaun FPGA puòè in esseregenerale rappresentatacostituita comeda una matrice di blocchi logici configurabili, detti CLB (''Configurable Logic Blocks''), connessi fra loro attraverso interconnessioni programmabili detti PIP (''Programmable Interconnection Point''). Ai margini di tale matrice vi sono i blocchi di ingresso/uscita, detti IOB (''Input Output Block''). I CLB realizzano le funzioni logiche, i PIP costituiscono l'insieme di interconnessioni attraversoli lemette quali viene trasportato il segnale tra un CLB ed unin altrocomunicazione, mentre gli IOB si occupano dell'interfacciamento del circuito con l'esterno. All'interno di tale matrice sono presenti anche altrealtri tipologietipi di risorsa, come i DCM (''Digital Clock Manager''), che generano il segnale di [[clock]], la rete che trasporta il segnale di clock dai flip-flop ai CLB ed altre risorse di calcolo, come ad esempio le [[Unità aritmetica e logica|ALU]] (''Arithmetic Logic Unit''), e risorse di memoria distribuita. Ciascuno di questi elementi costitutivi ha un modello di funzionamento specifico, che riveste notevole importanza nella comprensione del corretto funzionamento del dispositivo.
La descrizione che segue è valida per dispositivi [[SRAM]], tuttavia la maggior parte dei circuiti in commercio attua una scelta e un'organizzazione delle risorse quasi identica, salvo dove specificato. L'elemento di memoria SRAM, di tipo volatile, gode di particolare diffusione anche grazie al fatto che tali circuiti sono tra i più utilizzati nell'ambito degli esperimenti su satellite o sonda, oltre ad essere all'avanguardia nel settore delle tecnologie riprogrammabili integrate.
 
La struttura di una FPGA può essere rappresentata come una matrice di blocchi logici configurabili, detti CLB (''Configurable Logic Blocks''), connessi fra loro attraverso interconnessioni programmabili detti PIP (''Programmable Interconnection Point''). Ai margini di tale matrice vi sono i blocchi di ingresso/uscita, detti IOB (''Input Output Block''). I CLB realizzano le funzioni logiche, i PIP costituiscono l'insieme di interconnessioni attraverso le quali viene trasportato il segnale tra un CLB ed un altro, mentre gli IOB si occupano dell'interfacciamento del circuito con l'esterno. All'interno di tale matrice sono presenti anche altre tipologie di risorsa, come i DCM (''Digital Clock Manager''), che generano il segnale di [[clock]], la rete che trasporta il segnale di clock dai flip-flop ai CLB ed altre risorse di calcolo, come ad esempio le [[Unità aritmetica e logica|ALU]] (''Arithmetic Logic Unit''), e risorse di memoria distribuita. Ciascuno di questi elementi costitutivi ha un modello di funzionamento specifico, che riveste notevole importanza nella comprensione del corretto funzionamento del dispositivo.
 
===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ù [[Look-UpLookup Tabletable|LUT]] (''Look Up-up Table'') programmabili. Le LUT sono utilizzate per implementare funzioni booleane generalizzate, e sono solitamente accompagnate da un registro. L'insieme di questi elementi è detto ''logic cell'', e rappresenta uno dei parametri più importanti nella valutazione della potenzialità di un FPGA.
 
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.
 
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. Raggruppare insieme alcune LUT in un CLB e di connetterle con una rete locale di interconnessioni fornisceconsente infatti una maggiore velocità, dovuta al fatto che questaquesti tipologiatipo di interconnessione è più veloce di quella generale tra blocchi logici distinti. Il CLB è inoltre dimensionato al fine di ottimizzare il numero di connessioni locali e globali in funzione dell'area occupata: CLB troppo grandi implicano che l'area necessaria per le interconnessioni locali superi quella risparmiata grazie al raggruppamento delle LUT contenute in esse. Lungo il perimetro dei blocchi logici vi sono infine i pin di ingresso e uscita, collegati all'interconnessione adiacente tramite transistor programmabili.
 
===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 [[velocità di 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.
I buffer permettono inoltre di controllare la rapidità di commutazione del segnale, detta slew rate, 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 [[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===
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 ==
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'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.
 
== 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, "''[http://www.eetimes.com/news/design/business/showArticle.jhtml?articleID=188102617 FPGA Market to Pass $2.7 Billion by '10, In-Stat Says]" {{Webarchive|url=https://web.archive.org/web/20110615022908/http://www.eetimes.com/news/design/business/showArticle.jhtml?articleID=188102617 |data=15 giugno 2011 }}''. May 24, 2006. Retrieved February 5, 2009.</ref>
* 2010: Si stima 2.75 miliardi.<ref name="instat"/>
* 2020: si stima un mercato di 8.5 miliardi di dollari.
 
==Principali= I principali produttori ===
[[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>
[[Xilinx]] e [[Altera]] sono (2014) i due maggiori fabbricatori di FPGA.<ref>{{CiteCita web |firstnome=JohnAltera Corporation|lastsito=Edwards |work=EDN |url=http://wwwdl.ednAltera.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://seekingalphadl.altera.com/articleeula/85478-altera-and-xilinx-report-the-battle-continues|titletitolo= Altera andSoftware Xilinx Report: The BattleLicense ContinuesAgreements|dateaccesso=July15 17, 2008|year=2008|accessdate=November 13,ottobre 20132015}}</ref>. Sia Xilinx che Altera forniscono unQuesto 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>{{citeCita web|titletitolo=Xilinx ISE WebPACK|url=http://www.xilinx.com/ise/logic_design_prod/webpack.htm|urlmorto=sì|urlarchivio=https://web.archive.org/web/20070624212612/http://www.xilinx.com/ise/logic_design_prod/webpack.htm|dataarchivio=24 giugno 2007}}</ref><ref>{{citeCita web|titletitolo=Quartus II Web edition software|url=https://www.altera.com/support/software/download/altera_design/quartus_we/dnl-quartus_we.jsp|accesso=1º gennaio 2014|urlarchivio=https://web.archive.org/web/20071203074531/https://www.altera.com/support/software/download/altera_design/quartus_we/dnl-quartus_we.jsp|dataarchivio=3 dicembre 2007|urlmorto=sì}}</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>{{citeCita web|titletitolo=Achronix to use Intel's 22&nbsp;nm manufacturing|url=httphttps://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>{{citeCita web |titletitolo=Tabula's Time Machine - Micro Processor Report |url=http://www.tabula.com/news/M11_Tabula_Reprint.pdf |urlmorto=sì |urlarchivio=https://web.archive.org/web/20110410094902/http://www.tabula.com/news/M11_Tabula_Reprint.pdf |dataarchivio=10 aprile 2011 }}</ref>
 
==Note==
Line 62 ⟶ 77:
 
==Bibliografia==
* {{en}}{{citeCita booklibro| author autore= Hartmut F.-W. Sadrozinski; Jinyuan Wu| coauthors coautori= Jinyuan Wu| title titolo= Applications of Field-Programmable Gate Arrays in Scientific Research| year anno= 2010| publisher editore= Taylor & Francis| isbn = 978-1-4398-4133-4 |lingua= en}}
* {{en}}{{citeCita booklibro|titletitolo=Digital Circuit Design An Introduction Textbook|nome=Niklaus |cognome=Wirth|editore=Springer|anno=1995|isbn= 3-540-58577-X|lingua=en}}
|first=Niklaus |last=Wirth
|publisher=Springer|year=1995
|isbn= 3-540-58577-X}}
 
== Voci correlate ==
* [[Altera]]
* [[Antifusibile]]
* [[Gate array]]
* [[Handel-C]] - linguaggio che si basa sul C, progettato per i FPGA
* [[Linguaggio di descrizione hardware]]
* [[Programmable logicLogic deviceArray]]
* [[Programmable Logic Device]]
* [[Programmable Read Only Memory]]
* [[SRAM]]
* [[Verilog]]
* [[VHDL]]
* [[Xilinx]]
 
== Altri progetti ==
{{interprogetto|commonspreposizione=sul|wikt=FPGA|wikt_etichetta=Category:FPGA}}
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* [http://www.embeddedblog.it/wiki/doku.php/introduzione:manuale_vhdl Introduzione alle FPGA]
* {{FOLDOC|2=field-programmable gate array}}
* [http{{cita web|https://electro-logic.blogspot.it/p/indice-articoli.html |Articoli sulle FPGA]}}
* {{en}}[http://rcs.uncc.edu/ University of North Carolina at Charlotte's Reconfigurable Computing Laboratory]
* [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ì}}
* {{en}}[http://www.fpgacenter.com Tutorials and Examples on FPGAs]
* {{en}}[cita web|http://www.eecg.toronto.edu/~vaughn/challenge/fpga_arch.html |Vaughn Betz's FPGA Architecture Page]|lingua=en}}
* {{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à}}
{{Portale|elettronicainformatica|elettrotecnicaelettronica}}
 
[[Categoria:Circuiti elettronici configurabili]]