Che cos’e e come funziona un FPGA in informatica

Che cos’e e come funziona un FPGA in informatica

Una FPGA (o Field Programmable Gate Array) e un dispositivo elettronico caratterizzato dalla presenza al suo interno di componenti logici e connessioni programmabili. In particolare i circuiti interni possono essere riprogrammati, tramite una opportuna stringa di bit (o bitstream) di configurazione, in modo da implementare i principali dispositivi logici noti, sia combinatori (porte logiche AND, OR e anche funzione piu complesse) che sequenziali (flip-flop o altri circuiti piu complessi). Anche le connessioni tra i vari blocchi possono essere programmate, in modo da ottenere il routing desiderato per i segnali. La struttura interna di una FPGA e tipicamente composta da una matrice regolare di blocchi riconfigurabili, o CLB (Configurable Logic Blocks), dei quali quelli sul contorno della matrice si occupano anche di gestire i segnali di Input/Output. I CLB costituiscono l’unita base configurabile e sono collegati tra loro tramite una rete anch’essa configurabile secondo le necessita dell’utente; ogni CLB puo essere programmato in modo da implementare uno qualsiasi tra i circuiti (combinatori o sequenziali) supportati dalla FPGA. Internamente ogni CLB e formato da (tipicamente 4) slice e ogni slice puo contenere a sua volta diversi componenti logici (come multiplexer, bistabili o altro) a seconda del modello di FPGA considerato. Tipicamente all’interno delle slice sono present delle LUT (Look Up Tables); una LUT opera come una funzione logica che, avendo N bit in ingresso, permette di assegnare un valore all’unica uscita binaria per ciascuna delle 2^N possibili configurazioni degli ingressi. Una rappresentazione fedele di una LUT e una tabella con 2^N righe e N + 1 colonne (N per gli ingressi e una per l’uscita).

Che cos'e e come funziona un FPGA in informatica

Differenza microprocessori e FPGA

Da questa breve descrizione si possono osservare le notevoli differenze che intercorrono tra i microprocessori e le FPGA. I primi sono dei dispositivi programmabili, con un’architettura fissata, che variano il loro comportamento in funzione del software in esecuzione in un particolare momento. Le FPGA, invece, sono dispositivi configurabili, cioe variano la funzionalita che implementano modificando la configurazione delle risorse hardware interne. In questo modo è sempre possibile avere un’architettura specializzata per un determinato task con i vantaggi che questo comporta.

La FPGA si pone, quindi, in una posizione intermedia tra la flessibilita estrema di un microprocessore general purpose e i circuiti integrati per applicazioni specifiche (ASIC) mostrando, rispetto a questi ultimi, un difetto per quel che riguarda prestazioni velocistiche, di consumo e di costo su alti volumi di produzione, ma un vantaggio per quel che riguarda la flessibilita

La progettazione di sistemi basati su FPGA segue un design flow molto simile alla progettazione dei dispositivi ASIC. Comincia con il design entry, ossia la modalita con cui il progettista deve descrivere il progetto da implementare sul dispositivo. Questo avviene tipicamente per mezzo di linguaggi HDL (VHDL e Verilog sono i piu usati), schematici o netlist. Il design e successivamente sintetizzato e implementato e sottoposto a simulazioni ai vari stadi per verificare la consistenza con le specifiche. Se le simulazioni hanno dato risultati soddisfacenti, viene generato un file e trasferito nella memoria di configurazione del dispositivo che implementa cosi la funzionalita richiesta.

Chiaramente la flessibilita delle FPGA ha un costo rispetto alla rigidita degli ASIC. Ad esempio, la frequenza massima di clock ottenibile allo stato attuale, di poco superiore ai 500MHz, mentre un microprocessore moderno piu raggiungere frequenze che superano i 3GHz. La FPGA inoltre ha un consumo di potenza superiore rispetto allo stesso sistema realizzato in ASIC. Il mercato delle FPGA e in continua evoluzione e spinge per colmare questo gap fornendo dei dispositivi sempre piu complessi e con features orientate verso l’efficienza. Ad esempio, sono in commercio FPGA che integrano, nello stesso chip, anche dei microprocessori o dei moduli ASIC per il digital data processing e per le trasmissioni seriali veloci.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *