Indipendentemente dalla tecnologia utilizzata per la memorizzazione del file logico, occorre un adeguato
ambiente di sviluppo per la programmazione degli
FPGA.
I
linguaggi di programmazione del mondo informatico poco si prestano per essere utilizzati in questo campo, in quanto realizzati per sistemi logici basati su microprocessore molto più complessi degli
FPGA. Pertanto i produttori di logiche programmabili preferiscono definire un linguaggio di programmazione proprio o utilizzare due linguaggi standard definiti dall'
IEEE: il
Verilog o
VHDL (Virtual Hardware Language Descriptor), dedicati a questa tipologia di dispositivi.
I
motivi per cui imparare a utilizzare gli
FPGA sono molteplici, e vanno dalla didattica per lo studio dell'elettronica a microcontrollore, alla logica programmabile, alla possibilità di interfacciamento con una ampia categoria di dispositivi (DVI, HDMI, Fibre Channel, LVDS). Tali campi si avvantaggiano dalla semplicità di realizzazione delle fasi di progettazione, prototipazione e debug che risultano inoltre più veloci ed economici della realizzazione hardware "pura".
Su Internet non mancano
esempi di progetti complessi basati su questa tecnologia, come le realizzazioni di completi emulatori di vecchi computer come il
Mac Plus o l'
Amiga 500, o stravaganti implementazioni come l'
ocarina del videogioco
The Legend of Zelda: Ocarina Of Time, o progetti per il calcolo puro come il
dispositivo per decifrare le protezioni
HDCP.
Per aiutare chi si avvicina a questo ambiente
Mike Field sta realizzando un
corso completo per sfruttare appieno la loro potenza, e al momento sono già disponibili i moduli relativi agli aspetti base della logica dei dispositivi, alla matematica binaria, ai bus di comunicazione e a come impostare l'ambiente hardware e di sviluppo per la programmazione.
Per la realizzazione del
tutorial, suddiviso in
sedici parti, Field ha preferito utilizzare il linguaggio standard
VHDL piuttosto che il più diffuso
Verilog in quanto il primo, secondo la sua esperienza, risulta più rigoroso e semplice da interpretare, soprattutto per le persone che si avvicinano per la prima volta a questa particolare branca dell'elettronica e della programmazione.
Come
prerequisiti sono richiesti concetti base della programmazione a basso livello (ad esempio linguaggio C o Assembly), nozioni di algebra booleana ed è consigliata la conoscenza e comprensione degli schemi circuitali per la progettazione digitale; nel qual caso si volessero mettere in pratica gli esempi proposti, sono richiesti un PC equivalente a un modello
entry-level che utilizzi Windows XP, Windows 7 o Linux (CPU Dual core con 2 GB di RAM, un disco rigido con almeno 20 GB di spazio libero), una connessione a banda larga con un piano tariffario che consenta di scaricare il software di progettazione di dimensioni dell'ordine dei GB, e l'acquisto di una scheda di sviluppo
FPGA, (per il corso sono consigliate il modello
Basys2 Digilent, o una
Papilio One)