Che cos'è un FPGA?
Un array di gate programmabile sul campo (FPGA) è un chip logico del computer che non è cablato dal produttore. Ciò significa che può essere programmato dopo l'acquisto. Esistono migliaia di opzioni per la personalizzazione disponibili su un FPGA tipico. Queste entità programmabili sono le porte, note anche come blocchi logici o file di tabella di ricerca (LUT).
Poiché il numero di blocchi logici su un FPGA è troppo numeroso per essere creato manualmente, vengono generati tramite un programma software. I programmatori possono quindi scegliere tra una varietà di categorie per personalizzarle per un particolare sistema. Possono utilizzare i propri programmi per interagire con il programma sul chip FPGA e apportare le modifiche.
Quando si programma un FPGA, è possibile utilizzare diversi elementi interconnessi per configurare i blocchi logici secondo necessità. Il contenuto dei LUT varia a seconda del modo in cui sono stati programmati. Alcuni svolgono singole funzioni mentre altri sono in grado di svolgere una serie più complessa di attività. Alcuni FPGA possono contenere anche elementi sia analogici che digitali. Questi chip spesso hanno anche la capacità di consentire a questi elementi di funzionare insieme.
I LUT sono collegati da una rete di fili. A seconda della funzione richiesta, i fili possono passare attraverso i file in linea retta o una rete più complessa di connessioni diagonali. Un LUT può essere collegato a molti altri file tramite connessioni multiple. I file possono anche essere collegati da una serie di fili chiamati carry o catene di instradamento dedicate che aiutano a spostare solo determinati tipi di informazioni in modo che possano essere elaborati più rapidamente.
Per programmare una funzione logica con un FPGA, deve prima essere delineato in file di testo o visivi. Quindi le informazioni vengono scaricate nel software fornito con l'FPGA. Una volta completato tale processo, la funzione è generalmente operativa.
Sebbene un FPGA sia più costoso di un chip logico cablato, può aiutare a risparmiare risorse in quanto gli utenti possono programmare per soddisfare i loro requisiti specifici. Ciò può ridurre la necessità di ulteriore lavoro e il tempo aggiuntivo necessario per ospitare un chip non personalizzato. Un chip programmabile può anche essere più facile da usare, poiché le sue funzioni utente, come i menu, possono essere personalizzate.
I circuiti di gate array programmabili sul campo sono un'alternativa al circuito integrato specifico dell'applicazione (ASIC). Questi circuiti sono cablati prima di lasciare la fabbrica. Sono componenti a livello di scheda, al contrario degli elementi di livello gate programmabili sul campo.