See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Programmable logic device - Wikipedia

Programmable logic device

Da Wikipedia, l'enciclopedia libera.

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.

Indice

[modifica] Uso di ROM 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 2m 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 2m 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).

[modifica] 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 settanta, 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.

[modifica] 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.

[modifica] CPLD

PAL e GAL sono disponibili soltanto in piccole taglie, contenenti l'equivalente di alcune centinaia di porta logiche. Per realizzare circuiti logici più complessi si possono utilizzare PLD o CPLD. Questi dispositivi contengono l'equivalente di molte PAL collegate fra di loro mediante interconnessioni programmabili ed incapsulate in un unico circuito integrato. Le CPLD possono equivalere a migliaia, a volte addirittura centinaia di migliaia di porte logiche.

Alcuni tipi di CPLD si programmano usando il PAL programmer, ma questo metodo diventa poco pratico quando si devono collegare componenti con centinaia di pin. Un metodo molto più efficiente consiste nel saldare i dispositivi su un circuito stampato e quindi inviare loro, mediante un PC, un flusso di dati che, opportunamente decodificati dai circuiti interni dei CPLD, conferiscono agli stessi la configurazione necessaria a realizzare le funzioni logiche desiderate.

Ciascun produttore ha un proprio nome che identifica questa modalità di programmazione. Per esempio, la Lattice Semiconductor lo chiama "in-system programming". È in corso al riguardo un progetto di standizzazione da parte del JTAG (Joint Test action Group).

[modifica] FPGA

Mentre le PAL si stavano evolvendo nelle GAL e nei CPLD, una nuova famiglia di dispositivi, basata sulla tecnologia gate-array si stava affermando con il nome di FPGA. Un esempio è il modello 82s100 prodotto dalla Signetics verso la fine degli anni settanta. l'FPGA utilizza una matrice di porte logiche molto simile a quella di un normale gate array, ma la programmazione è fatta dall'utilizzatore anziché in fabbrica.

La definizione di "field programmable" (cioè "programmabile sul campo" può sembrare poco chiara, ma il termine "field" significa semplicemente sul campo "fuori dalla fabbrica", quindi nel luogo dove viene utilizzato dall'utente finale. Le FPGA, come i CPLD, si programmano dopo averle saldate al circuito stampato. La loro configurazione è volatile e deve essere ricaricata ad ogni riaccensione ed ogni volta che si richiede una diversa programmazione.

FPGA e CPLD sono di solito soluzioni equivalenti dal punto di vista delle prestazioni. La scelta può dipendere da considerazioni economiche o dall'esperienza personale del progettista.

[modifica] Altri tipi di PLD

L'interesse per i sistemi riconfigurabili, cioè per i circuiti che contengono funzionalità standard più altre che possono essere modificate dal programma che gira sul processore, tende oggi ad aumentare. La corretta progettazione di questo tipo di dispositivi richiede al progettista un particolare approccio sistemistico e sarà probabilmente accompagnata e facilitata dalla disponibilità di nuovi strumenti software di sviluppo.

Sono già sul mercato PLD che incorporano un microprocessore che esegue le funzioni base (detto core) intorno a cui sono cablate le logiche programmabili. Questa configurazione permette al progettista di concentrarsi sulle funzionalità specifiche da aggiungere, senza preoccuparsi del lavoro che il processore deve svolgere in background.

[modifica] Memorizzazione della configurazione dei PLD

Un PLD contiene componenti sia di logica che di memoria, che contiene le informazioni di configurazione, possono essere di tipo:

Gli Antifusibili al silicio sono usati nelle PAL e sono realizzati applicando una tensione fra due punti dello strato di silicio interno del chip. Hanno questo nome perché funzionano in modo opposto ai fusibili, che inizialmente conducono e si interrompono al passaggio della corrente di guasto.

Le SRAM e le RAM sono memorie volatili, quindi la programmazione viene persa allo spegnimanto e deve essere ricaricata alla riaccensione, di solito automaticamente, a cura di una parte dedicata del circuito.

Le memorie flash sono non-volatili, cioè mantengono i dati anche a circuito disalimentato e possono essere facilmente cancellate e riprogrammate.

Una cella EPROM è basata su transistor di tipo MOS che possono essere messi in stato ON confinando permanentemente cariche elettriche nel terminale gate. La programmazione si effettua usando un apparecchio chiamato PAL programmer. Le cariche rimangono memorizzate per molti anni, e possono essere rimosse esponendo il chip a radiazioni ultraviolette di forte intensità emesse da un EPROM eraser.

[modifica] Linguaggi di programmazione dei PLD

Di solito è difficile e poco conveniente scrivere a mano il codice per programmare i PLD, e quindi si usano computer e software appositi, chiamati logic compiler, simili ai classici compilatori che generano i programmi software eseguibili a partire dai file sorgente. Nel caso dei PLD i linguaggi sorgente si chiamano hardware description language (HDL). Ad esempio il linguaggio ABEL è adatto a logiche di bassa complessità, il Verilog e il VHDL sono indicati per applicazioni più complesse.


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -