Luigi Loreti

TTL · PLD · FPGA · Linguaggi hardware

Dalle porte logiche
all’hardware descritto

PALASM, AHDL, VHDL e Verilog nel mio percorso di progettazione.

Dai circuiti della serie 74 alle architetture riconfigurabili: un modo nuovo di costruire i sistemi, nato dall’incontro tra esperienza elettronica ed equazioni booleane.

Un racconto in prima persona

All’inizio, una scheda piena di integrati

Nei miei primi progetti utilizzavo i circuiti della serie 74 della Texas Instruments. Ne conoscevo i componenti e sapevo come combinarli: porte logiche, contatori, registri, multiplexer e tutto ciò che serviva per costruire un sistema digitale.

Il progetto prendeva forma nello schema elettrico e nei collegamenti tra gli integrati. Era un modo molto concreto di lavorare: ogni funzione aveva i suoi componenti, e la complessità del sistema diventava anche complessità della scheda.

I videogiochi e la scoperta delle PLD

Poi qualcuno mi fece notare che esistevano le PLD, i dispositivi logici programmabili, che incontravo anche nel mondo dei videogiochi. Ogni tanto me ne occupavo con un amico, studiando le schede giapponesi e cercando di riprodurne il funzionamento.

Da lì cominciai a scoprire un mondo nuovo: una parte della logica che realizzavo con tanti integrati poteva essere descritta e inserita in un dispositivo programmabile.

Il primo linguaggio con cui entrai in contatto fu PALASM. Le equazioni diventavano un modo per esprimere il circuito, anziché limitarmi a disegnarlo come una rete di componenti.

Le equazioni che avevo già incontrato a Fisica

Mi resi conto che potevo descrivere le funzioni dei miei progetti TTL attraverso equazioni booleane. Era un linguaggio di idee che conoscevo già: lo avevo studiato a Fisica, nel corso di Cibernetica con Serra e Pallottino.

Quello che prima costruivo collegando integrati potevo cominciare a esprimerlo con equazioni. Non cambiava soltanto lo strumento: cambiava il modo di pensare e organizzare il progetto.

Altera, le FPGA e una nuova libertà progettuale

Un rappresentante di Altera mi fece poi conoscere le FPGA. Nel percorso attraverso questi strumenti incontrai VHDL e Verilog: si apriva un’altra possibilità per descrivere sistemi sempre più complessi.

Non si trattava più soltanto di sostituire qualche porta logica. Potevo organizzare interi blocchi di elaborazione, sincronismi, contatori, interfacce e circuiti di controllo all’interno di un’architettura riconfigurabile.

Le FPGA divennero una delle mie principali competenze di progettazione. Con questi strumenti riprogettai i sistemi videowall, realizzai controller per LED wall e, più avanti, affrontai anche il supporto elettronico per il calcolo ottico.

Quattro linguaggi, un percorso

PALASM, AHDL, VHDL e Verilog non sono quattro nomi per la stessa cosa. Appartengono a contesti diversi, ma condividono un’idea: descrivere la logica di un circuito con un linguaggio formale.

PALASM

È legato ai dispositivi PAL e alla descrizione delle loro funzioni logiche mediante equazioni booleane, assegnazioni di segnali e configurazione dei pin.

È vicino al problema concreto della logica programmabile di piccole dimensioni: tradurre relazioni tra ingressi, uscite e registri nelle risorse disponibili sul dispositivo.

AHDL

Altera Hardware Description Language è il linguaggio proprietario di Altera, storicamente integrato nell’ambiente MAX+PLUS II.

Permette di descrivere equazioni, tabelle di verità, gruppi di segnali e macchine a stati. È legato all’ecosistema Altera, a differenza di VHDL e Verilog, che sono linguaggi standardizzati.

VHDL

È un linguaggio standardizzato per descrivere, simulare e, per la parte sintetizzabile, realizzare circuiti digitali. Ha una sintassi esplicita e un sistema di tipi rigoroso.

Separa l’interfaccia, descritta nell’entity, dall’implementazione, descritta nell’architecture. Consente di organizzare progetti gerarchici e processi concorrenti.

Verilog

È anch’esso un linguaggio standardizzato per descrizione, simulazione e sintesi dell’hardware. La sintassi è più compatta e ricorda quella del C.

Il modulo è l’unità di base. Assegnazioni continue e blocchi procedurali descrivono logica combinatoria, registri e circuiti sequenziali. Può descrivere le stesse funzioni hardware di VHDL.

Approfondimenti: Altera Training Manual: AHDL e MAX+PLUS II · VHDL e Verilog a confronto · Hardware description languages.

Non un programma eseguito in sequenza, ma un circuito

VHDL e Verilog possono somigliare a linguaggi di programmazione, ma il loro scopo è diverso: descrivono hardware. Più blocchi possono operare contemporaneamente; i registri aggiornano il proprio stato in relazione al clock e ai segnali di controllo.

Per ottenere il circuito, gli strumenti elaborano la descrizione sintetizzabile, la traducono in una rete logica e la collocano nelle risorse della FPGA. Si verificano anche i vincoli temporali e si genera la configurazione del dispositivo. Non tutto ciò che si può scrivere per una simulazione è automaticamente sintetizzabile.

y = (a AND b) OR (NOT c)

Una semplice equazione come questa descrive una relazione logica. In TTL avrei scelto gli integrati e collegato le porte; con la logica programmabile descrivo la funzione, mentre gli strumenti la mappano sulle risorse del dispositivo. Per le funzioni sequenziali devo definire anche registri, clock e comportamento nel tempo.

Dal video al calcolo ottico

Il filo conduttore resta lo stesso: trovare l’architettura giusta per elaborare segnali e informazioni. Le FPGA mi hanno permesso di portare quell’idea dai sistemi video ai grandi schermi e poi all’elettronica di supporto per il calcolo ottico.

In quest’ultimo caso non sostituiscono la parte ottica: ne affiancano il funzionamento con i circuiti di controllo e di interfaccia necessari al sistema.

Dalla serie 74 alle equazioni booleane, dalle PLD alle FPGA: ogni passaggio mi ha dato un nuovo modo di trasformare un’idea in un circuito. E questa storia continua ancora oggi.

I progetti collegati

La storia del videowall →

I controller per LED wall →

OptoPC e il calcolo ottico →

Approfondimenti e materiali storici →

Luigi Loreti

Contatti

Per ricerca, collaborazioni, idee, musica, vela o semplice curiosità:

luigi.loreti@optopc.it