Programmable Logic Device

circuito digitale
Versione del 28 ago 2005 alle 10:31 di Marius~itwiki (discussione | contributi) (tradotta parte)

Un programmable logic device detto anche PLD, è un componente elettronico utilizzato come componente di circuiti digitali. A differenza di una porta logica, che implementa una funzione logica predefinita e non modificabile, un PLD, al momento della fabbricazione, non è configurato per svolgere una determinata funzione logica. Prima di poter utilizzare un PLD in un circuito, esso deve essere programmato.

Uso di RAM come PLD

Prima dell'introduzione dei PLD si utilizzavano componenti ROM per implementare una qualsiasi logica combinatoria a partire da un dato insieme di ingressi. Una ROM con m ingressi (che corrispondono agli indirizzi) ed n uscite (che corrispondono ai dati) può contenere   parole di n bit. Immaginiamo ora che gli ingressi non siano costituiti da un indirizzo di m bit, ma invece da m segnali logici indipendenti. Teoricamente esistono   diverse possibili funzioni booleane di questi m segnali, ma la struttura della ROM permette di definire soltanto n di queste funzioni sui terminali di uscita. La ROM, in altre parole, diventa equivalente ad n circuiti logici separati, ciascuno dei quali realizza una data funzione combinatoria degli m ingressi. Il vantaggio di usare una ROM in questo modo consiste nel fatto che ogni possibile funzione degli m ingressi può essere associata a ciascuna delle n uscite, in modo da realizzare un circuito logico combinatorio dotato della massima flessibilità.

Le PROM (Cioè le ROM programmabili), le EPROM (PROM cancellabili con raggi ultravioletti), e le EEPROM (PROM cancellabili elettricamente) possono essere configurate e programmate mediante apparecchiature facilmente reperibili, senza la necessità di ricorrere a particolari dispositivi hardware o software. Questi dispositivi, tuttavia, presentano una serie di limitazioni:

  • sono solitamente più lenti dei corrispondenti circuiti logici dedicati,
  • non sono sempre immuni da errori in caso di transizioni asincrone,
  • consumano più potenza,
  • poiché sono spesso utilizzati solo per una piccola parte della loro capacità teorica, comportano un'eccessiva occupazione di spazio,
  • non possono essere facilmente impiegati per implementare circuiti a logica sequenziale poiché non dispongono della funzione flip-flop.

Alcuni dei più semplici modelli di EPROM, come il 2716, sono ancor oggi a volte utilizzati in questo modo, specialmente dai progettisti dilettanti (le "PAL dei poveri", come sono a volte scherzosamente definite).

Primi tipi di dispositivi a logica programmabile

I primi componenti appartenenti a questa famiglia sono stati introdotti sul mercato con il nome di PAL da alcune case, fra cui la MMI Inc. Pare che l'IBM abbia prodotto dispositivi analoghi circa a metà degli anni 70, ma solo per la propria produzione interna. Dopo che la MMI ottenne un notevole successo con le PAL a 20 pin, la AMD lanciò il modello 22V10 a 24 pin, dotato di funzioni aggiuntive. Dopo aver incorporato la MMI, l'AMD fondò una società ausiliaria con il nome di Vantis, che nel 1999 fu acquisita alla Lattice Semiconductor.

Le GAL

Un'evoluzione delle PAL, chiamata GAL (acronimo di Generic Array Logic device) fu sviluppata dalla Lattice Semiconductors. Queste logiche hanno le stesse caratteristiche delle PAL, ma in più possono essere cancellate e riprogrammate. Questa caratteristica le rende molto utili in fase di sviluppo progettuale dei prototipi, perché i bug di progetto possono essere facilmente corretti riprogrammando il dispositivo. Per programmare le GAL si usa un apparecchio chiamato PAL programmer.

Un altro componente simile alle GAL, chiamato PEEL (Programmable Electrically Erasable Logic) fu introdotto, ma con minore successo, dalla ICT Corporation.