mediante tecniche CAE (computer aided engineering), in modo da

PLD
- Per realizzare circuiti digitali di una certa complessità si possono seguire tre
metodi:
- utilizzare moduli integrati standard SSI, MSI, LSI, come si è visto nelle unità
precedenti;
- costruire dispositivi VLSI full-custom, progettati interamente ed
esclusivamente per una determinata applicazione;
- impiegare circuiti semi-custom ossia circuiti integrati costituiti da un numero
molto elevato di blocchi elettronici elementari, le cui interconnessioni sono
lasciate incomplete dal costruttore e vengono completate dal progettista
mediante tecniche CAE (computer aided engineering), in modo da comporre il
circuito adatto alle proprie esigenze. Denominati anche ASIC (application specific
integrated circuit), comprendono i componenti a mascheratura (gate array e
standard cell), che per la realizzazione richiedono ancora l’intervento del
costruttore, e componenti programmabili, genericamente noti come PLD
(programmable logic device), le cui connessioni interne vengono effettuate
fisicamente dall’utente mediante apparecchiature simili ai programmatori di
EPROM.
- I PLD comprendono diverse sottofamiglie: PROM, PLA, PAL, PLS, con gli analoghi
componenti cancellabili e riprogrammabili (EPLD: eresable PLD) e circuiti più
complessi e potenti indicati di solito come Complex PLD e FPGA o LCA.
- Il processo con cui si effettua la programmazione è strettamente legato alla
tecnologia costruttiva del circuito. Con la tecnica più comune, usata per PLD
bipolari, il costruttore fornisce il componente completo di contatti realizzati
attraverso fusibili che possono essere bruciati al momento della programmazione
per ottenere le funzioni desiderate. Nei dispositivi CMOS i contatti sono
costituiti da collegamenti programmabili e cancellabili basati su MOS a gate
fluttuante analoghi a quelli delle EPROM ed E2PROM.
- Qualsiasi funzione logica combinatoria può essere espressa come somma di prodotti
canonica ovvero come somma di tanti termini, chiamati mintermini, ciascuno
costituito dal prodotto di tutte le variabili di ingresso, in forma diretta o
complementata. La struttura base di un PLD è quindi formata da una matrice di
porte AND (AND array), a cui sono applicate tutte le variabili di ingresso in
forma normale o complementata, seguita da una matrice di porte OR (OR array),
ai cui ingressi vengono applicati i termini prodotto generati dalle porte and
suddette. L’architettura di tutti i PLD è sostanzialmente basata su blocchi
composti da una matrice and e una matrice or, completate da elementi che
consentono di ottenere terminali di uscita attivi alti, attivi bassi, complementati,
programmabili, bidirezionali. Se a questi si aggiungono celle formate da flip-flop,
-
-
-
-
diventa possibile realizzare anche sistemi sequenziali. Inoltre, componendo
insieme più blocchi si ottengono dispositivi assai potenti in grado di implementare
funzioni complesse.
Le PROM rappresentano i tipi più semplici di PLD essendo costituite da un
decodificatore di indirizzi, che realizza il piano and, e da una matrice
programmabile a porte or. Per implementare una funzione logica mediante una
PROM è sufficiente impostare i singoli mintermini a partire dalla tabella di verità
delle funzioni; se si dispone di un’espressione booleana già ridotta occorre risalire
nuovamente alla sua forma canonica. Il numero di funzioni che si possono
realizzare con una PROM è pari al numero di bit di ciascuna parola della memoria;
il risultato delle funzioni implementate si presenta sulle uscite dati.
Nei circuiti PLA (programmable logic array) sono programmabili sia il piano and sia
il piano or; ciò consente di ridurre le dimensioni delle matrici in quanto i termini
prodotto da generare vengono scelti dall’utente sulla base delle specifiche
necessità dopo aver semplificato le funzioni. Una PLA è caratterizzata dal
numero (I) di ingressi, dal numero (P) di termini prodotto che possono essere
implementati e dal numero (O) di uscite. Per utilizzare una PLA occorre
semplificare le funzioni minimizzando il numero complessivo dei termini prodotto
di tutte le funzioni. Poiché i circuiti PLA vengono programmati elettricamente
dall’utente mediante bruciatura dei fusibili, spesso le PLA vengono indicate come
FPLA (fìeld programmable logic array).
La struttura di una PAL (programmable array logic) è costituita da una matrice and
con contatti programmabili e da una matrice or a contatti fissi. Questa soluzione
comporta una struttura più semplice di quella delle PLA senza in pratica imporre
sostanziali limitazioni. Con un circuito PAL è possibile una maggiore flessibilità
nella scelta delle celle da programmare e ciò porta a costruire componenti piccoli
e veloci. Per ottimizzare la programmazione delle PAL conviene procedere alla
semplificazione di ciascuna funzione da realizzare rendendone minimo il numero
dei termini prodotto.
Alcuni tipi di PLD presentano linee di uscita connesse a flip-flop previsti per
memorizzare i dati in sincronismo con un segnale di clock. Essi consentono di
implementare circuiti sequenziali secondo entrambi i modelli classici, di Moore e
di Mealy. I PLD sequenziali presentano molte altre caratteristiche, in particolare
molti elementi programmabili, che ne rendono più flessibile l’impiego. Alcuni
consentono di programmare la tipologia dei flip-flop (SR, D, JK, T) o di scegliere
la polarità delle uscite; alcuni contengono anche flip-flop con ingressi diretti
pilotati da segnali generati nel PLD stesso oppure inviati dall’esterno; anche il
clock, solitamente applicato ad un terminale esterno e comune a tutti i flip-flop,
in certi dispositivi è individuale e generato da un termine della matrice and/or.
L’architettura e le caratteristiche illustrate sono proprie di due categorie di
prodotti, i PLS o FPLS (field programmable logic sequencer), in cui è
programmabile la tipologia dei flip-flop, e le Registered PAL, con flip-flop di tipo
D. Per rendere più flessibile l’impiego delle PAL in applicazioni sequenziali, sono
stati realizzati dispositivi universali che presentano, per ciascuna uscita,
macrocelle programmabili anziché semplici flip-flop.
- Per consentire la modifica e il reimpiego di PLD già programmati, sono stati
realizzati circuiti riprogrammabili, che ora incontrano il maggior successo
commerciale. L’offerta del mercato è molto ampia ed in continua evoluzione;
essenzialmente si possono individuare due categorie di prodotti:
- EPLD, comprendenti dispositivi cancellabili con caratteristiche funzionali
sostanzialmente equivalenti a quelle dei PLD precedentemente illustrati.
Realizzati in tecnologia CMOS, essi prendono il nome di EPLD (erasable PLD) se la
cancellazione avviene mediante esposizione ai raggi ultravioletti, come per le
EPROM, oppure EEPLD (electrically erasable PLD) se la cancellazione avviene
elettricamente, come per le E2PROM. Questi ultimi dispositivi sono anche
chiamati GAL (generic array logic) e ricalcano la struttura delle più sofisticate
PAL con macrocelle. I prodotti più recenti sono PLD ad alta densità, spesso
cancellabili elettricamente, che vengono perciò indicati come Complex EPLD o
Complex E2PLD.
- FPGA, (field programmable gate array) essenzialmente costituiti da una matrice
di blocchi logici configurabili, che possono essere collegati fra di loro mediante
connessioni programmabili. I dispositivi che hanno incontrato il maggior successo
sono quelli in cui la programmazione avviene con un procedimento software: le
funzioni dei vari blocchi logici e le loro interconnessioni sono controllate da un
programma di configurazione immagazzinato in una memoria contenuta nello
stesso chip. La configurazione dell’intero circuito si ottiene quindi scaricando
nelle celle di memoria la corretta sequenza di bit preventivamente definita.
Questa classe di prodotti, sviluppata inizialmente dalla Xilinx con la
denominazione LCA (logic cell array), è in rapida evoluzione e comprende ormai
circuiti con strutture molto complesse e con densità di integrazione e prestazioni
elevatissime.
- Nel settore elettronico si sono ormai imposte le tecniche CAD (Computer Aided
Design) e CAE (Computer Aided Engineering) per la progettazione e lo sviluppo di
circuiti. Sono comuni programmi dedicati alle principali fasi di lavoro quali disegno
di schemi elettrici, progettazione di circuiti stampati, sviluppo di progetti con
dispositivi programmabili, simulazione.