Field Programmable Gate Array: differenze tra le versioni

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
Contenuto cancellato Contenuto aggiunto
ortografia
Nessun oggetto della modifica
Riga 20: Riga 20:
La progettazione del circuito implementato sull'FPGA comincia solitamente con la scrittura della funzione logica mediante l'utilizzo di linguaggi [[Hardware description language|HDL]] (''Hardware Description Language''), come [[Verilog]] e [[VHDL]] (VHSIC HDL, o ''Very High Speed
La progettazione del circuito implementato sull'FPGA comincia solitamente con la scrittura della funzione logica mediante l'utilizzo di linguaggi [[Hardware description language|HDL]] (''Hardware Description Language''), come [[Verilog]] e [[VHDL]] (VHSIC HDL, o ''Very High Speed
Integrated Circuit HDL''). Successivamente un compilatore, o più frequentemente un sintetizzatore, converte il codice HDL in una descrizione a livello di porte logiche, indipendente dalle caratteristiche dell'FPGA che si vuole utilizzare: tale descrizione è contenuta in un file detto ''netlist''. La realizzazione del circuito avviene mediante uno specifico software, che attraverso alcuni passaggi assegna le risorse fisiche disponibili stabilendo la posizione nell'FPGA della logica e delle interconnessioni.
Integrated Circuit HDL''). Successivamente un compilatore, o più frequentemente un sintetizzatore, converte il codice HDL in una descrizione a livello di porte logiche, indipendente dalle caratteristiche dell'FPGA che si vuole utilizzare: tale descrizione è contenuta in un file detto ''netlist''. La realizzazione del circuito avviene mediante uno specifico software, che attraverso alcuni passaggi assegna le risorse fisiche disponibili stabilendo la posizione nell'FPGA della logica e delle interconnessioni.

==Bibliografia==
* {{en}}{{cite book| author = Hartmut F.-W. Sadrozinski; Jinyuan Wu| coauthors = Jinyuan Wu| title = Applications of Field-Programmable Gate Arrays in Scientific Research| year = 2010| publisher = Taylor & Francis| isbn = 978-1-4398-4133-4 }}
* {{en}}{{cite book|title=Digital Circuit Design An Introduction Textbook
|first=Niklaus |last=Wirth
|publisher=Springer|year=1995
|isbn= 3-540-58577-X}}


== Voci correlate ==
== Voci correlate ==
* [[Programmable logic device]]
* [[Programmable logic device]]
* [[Handel-C]] - linguaggio che si basa sul C, progettato per i FPGA
* [[Handel-C]] - linguaggio che si basa sul C, progettato per i FPGA
* [[Programmable Read Only Memory]]
* [[SRAM]]
* [[Verilog]]
* [[VHDL]]


== Altri progetti ==
== Altri progetti ==

Versione delle 18:31, 1 gen 2014

FPGA contenente 20.000 porte logiche

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 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 porte logiche a qualche milione di porte logiche per singolo dispositivo FPGA.

Esistono diverse tipologie di FPGA, che comprendono sia dispositivi programmabili una sola volta, sia dispositivi riprogrammabili un grande numero di volte. I primi, detti 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 ASIC (Application Specific Integrated Circuit) da un lato e a quelli con architettura 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).

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.

Dispositivi SRAM

I dispositivi SRAM FPGA, le cui caratteristiche variano a seconda delle esigenze del produttore, si basano sull'elemento di memoria SRAM, di tipo volatile. L'importanza di questa particolare famiglia di dispositivi è dovuta 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 SRAM-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 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 matrice di CLB è uno dei due costituenti fondamentali di un FPGA, e permette al dispositivo di realizzare le funzioni logiche. Un CLB è un blocco logico complesso solitamente composto da una o più LUT (Look 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.

La progettazione del circuito implementato sull'FPGA comincia solitamente con la scrittura della funzione logica mediante l'utilizzo di linguaggi HDL (Hardware Description Language), come Verilog e VHDL (VHSIC HDL, o Very High Speed Integrated Circuit HDL). Successivamente un compilatore, o più frequentemente un sintetizzatore, converte il codice HDL in una descrizione a livello di porte logiche, indipendente dalle caratteristiche dell'FPGA che si vuole utilizzare: tale descrizione è contenuta in un file detto netlist. La realizzazione del circuito avviene mediante uno specifico software, che attraverso alcuni passaggi assegna le risorse fisiche disponibili stabilendo la posizione nell'FPGA della logica e delle interconnessioni.

Bibliografia

  • (EN) Hartmut F.-W. Sadrozinski; Jinyuan Wu, Jinyuan Wu, Applications of Field-Programmable Gate Arrays in Scientific Research, Taylor & Francis, 2010, ISBN 978-1-4398-4133-4.
  • (EN) Niklaus Wirth, Digital Circuit Design An Introduction Textbook, Springer, 1995, ISBN 3-540-58577-X.

Voci correlate

Altri progetti

Collegamenti esterni

  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica