Logica array programmabile - Programmable Array Logic

Image
MMI 16R6 in DIP a 20 pin
Image
AMD 22V10 con DIP a 24 pin

Programmable Array Logic ( PAL ) è una famiglia di semiconduttori di dispositivi logici programmabili utilizzati per implementare funzioni logiche nei circuiti digitali introdotti da Monolithic Memories , Inc. (MMI) nel marzo 1978. MMI ha ottenuto un marchio registrato sul termine PAL da utilizzare in "Programmable Circuiti logici a semiconduttore ". Il marchio è attualmente detenuto da Lattice Semiconductor .

I dispositivi PAL erano costituiti da un piccolo nucleo PROM (memoria di sola lettura programmabile) e da una logica di uscita aggiuntiva utilizzata per implementare particolari funzioni logiche desiderate con pochi componenti.

Utilizzando macchine specializzate, i dispositivi PAL erano "programmabili sul campo". I PAL erano disponibili in diverse varianti:

  • I dispositivi " One-time programmable " (OTP) non potevano essere aggiornati e riutilizzati dopo la programmazione iniziale (MMI offriva anche una famiglia simile chiamata HAL, o "hard array logic", che erano come i dispositivi PAL tranne per il fatto che erano programmati in maschera al fabbrica.).
  • Le versioni cancellabili con UV (ad esempio: PALCxxxxx ad esempio: PALC22V10) avevano una finestra di quarzo sul dado del chip e potevano essere cancellate per il riutilizzo con una sorgente di luce ultravioletta proprio come una EPROM .
  • Le versioni successive (PALCExxx ad esempio: PALCE22V10) erano dispositivi cancellabili tramite flash.

Nella maggior parte delle applicazioni, i GAL cancellabili elettricamente vengono ora distribuiti come sostituzioni dirette compatibili con i pin per PAL programmabili una tantum.

Storia

Prima dell'introduzione dei PAL, i progettisti di circuiti logici digitali utilizzavano componenti SSI ( Small-Scale Integration ), come quelli della famiglia TTL ( transistor-transistor logic ) serie 7400 ; la famiglia 7400 includeva una varietà di elementi costitutivi logici, come gate ( NOT , NAND , NOR , AND , OR ), multiplexer (MUX) e demultiplexer (DEMUX), flip flop (tipo D, JK, ecc.) e altri . Un dispositivo PAL in genere sostituirebbe dozzine di tali pacchetti logici "discreti", quindi l'attività SSI declinò con il decollo dell'attività PAL. I PAL sono stati usati vantaggiosamente in molti prodotti, come i minicomputer , come documentato nel best seller di Tracy Kidder The Soul of a New Machine .

I PAL non furono i primi dispositivi logici programmabili commerciali; Signetics vendeva il suo array logico programmabile sul campo (FPLA) dal 1975. Questi dispositivi erano completamente sconosciuti alla maggior parte dei progettisti di circuiti ed erano percepiti come troppo difficili da usare. L'FPLA aveva una velocità operativa massima relativamente lenta (a causa della presenza di array AND programmabili e OR programmabili), era costoso e aveva una scarsa reputazione di testabilità. Un altro fattore che ha limitato l'accettazione dell'FPLA è stato il pacchetto di grandi dimensioni, un DIP ( Dual In-Line Package ) da 600 mil (0,6 "o 15,24 mm) di larghezza a 28 pin .

Il progetto per creare il dispositivo PAL è stato gestito da John Birkner e l'attuale circuito PAL è stato progettato da HT Chua . In un precedente lavoro (presso il produttore di minicomputer Computer Automation ), Birkner aveva sviluppato un processore a 16 bit utilizzando 80 dispositivi logici standard. La sua esperienza con la logica standard lo ha portato a credere che i dispositivi programmabili dall'utente sarebbero più attraenti se i dispositivi fossero progettati per sostituire la logica standard. Ciò significava che le dimensioni della confezione dovevano essere più tipiche dei dispositivi esistenti e le velocità dovevano essere migliorate. MMI intendeva che i PAL fossero una parte relativamente a basso costo (meno di $ 3). Tuttavia, la società inizialmente ha avuto gravi problemi di resa di produzione e ha dovuto vendere i dispositivi per oltre $ 50. Ciò ha minacciato la fattibilità del PAL come prodotto commerciale e MMI è stata costretta a concedere in licenza la linea di prodotti a National Semiconductor. I PAL sono stati successivamente " secondari " da Texas Instruments e Advanced Micro Devices .

Tecnologie di processo

I primi PAL erano componenti DIP a 20 pin fabbricati in silicio utilizzando la tecnologia dei transistor bipolari con fusibili di programmazione in titanio-tungsteno programmabili una tantum (OTP). I dispositivi successivi sono stati prodotti da Cypress , Lattice Semiconductor e Advanced Micro Devices utilizzando la tecnologia CMOS .

I PAL originali a 20 e 24 pin erano indicati da MMI come dispositivi MSI ( Medium-Scale Integration ).

Architettura PAL

Image
Gli elementi programmabili (mostrati come un fusibile) collegano sia l'ingresso vero che quello complementare alle porte AND. Queste porte AND, note anche come termini di prodotto , vengono messe insieme tramite OR per formare una matrice logica della somma dei prodotti .

L'architettura PAL è composta da due componenti principali: un piano logico e macro celle logiche di output.

Piano logico programmabile

Il piano logico programmabile è un array di memoria di sola lettura programmabile (PROM) che consente di instradare i segnali presenti sui pin del dispositivo, o i complementi logici di tali segnali, alle macrocellule logiche di uscita.

I dispositivi PAL hanno array di celle a transistor disposte in un piano "OR fisso, AND programmabile" utilizzato per implementare equazioni logiche binarie " somma di prodotti " per ciascuna delle uscite in termini di ingressi e feedback sincrono o asincrono da le uscite.

Logica di uscita

I primi PAL a 20 pin avevano 10 ingressi e 8 uscite. Le uscite erano attive basse e potevano essere registrate o combinatorie. I membri della famiglia PAL erano disponibili con varie strutture di output chiamate " macrocellule logiche di output " o OLMC. Prima dell'introduzione della serie "V" (per "variabile"), i tipi di OLMC disponibili in ogni PAL erano fissati al momento della produzione. (Il PAL16L8 aveva 8 uscite combinatorie e il PAL16R8 aveva 8 uscite registrate. Il PAL16R6 ne aveva 6 registrati e 2 combinatori, mentre il PAL16R4 ne aveva 4 ciascuno.) Ciascuna uscita poteva avere fino a 8 termini di prodotto (effettivamente AND gate); tuttavia, le uscite combinatorie utilizzavano uno dei termini per controllare un buffer di uscita bidirezionale. C'erano altre combinazioni che avevano meno uscite con più termini di prodotto per uscita ed erano disponibili con uscite alte attive (serie "H"). La serie di dispositivi "X" aveva una porta XOR prima del registro. C'erano anche versioni simili a 24 pin di questi PAL.

Questa struttura di output fissa spesso ha frustrato i progettisti che tentano di ottimizzare l'utilità dei dispositivi PAL perché le loro applicazioni spesso richiedono strutture di output di diverso tipo. (Ad esempio, non è possibile ottenere 5 uscite registrate con 3 uscite combinatorie attive alte.) Così, nel giugno 1983 AMD ha introdotto il 22V10, un dispositivo a 24 pin con 10 macro celle logiche di uscita. Ciascuna macro cella può essere configurata dall'utente come combinatoria o registrata, attiva alta o attiva bassa. Il numero di termini di prodotto assegnati a un'uscita variava da 8 a 16. Questo dispositivo potrebbe sostituire tutti i dispositivi PAL a funzione fissa a 24 pin. I membri della serie PAL "V" ("variabile") includevano PAL16V8, PAL20V8 e PAL22V10.

PAL di programmazione

PAL sono stati programmati utilizzando elettricamente modelli binari (come JEDEC ASCII / esadecimale file) e uno speciale sistema di programmazione elettronica disponibile da parte del fabbricante o di terze parti, come ad esempio dati di I / O . Oltre ai programmatori di dispositivi a unità singola, spesso venivano utilizzati alimentatori di dispositivi e programmatori di gruppo quando era necessario programmare più di pochi PAL. (Per grandi volumi, i costi di programmazione elettrica potrebbero essere eliminati chiedendo al produttore di fabbricare una maschera metallica personalizzata utilizzata per programmare i modelli dei clienti al momento della produzione; MMI ha utilizzato il termine " logica hard array " (HAL) per riferirsi ai dispositivi programmati in questo modo.)

Linguaggi di programmazione (in ordine cronologico di apparizione)

Image
Progettazione PALASM di un contatore a 4 bit

Sebbene alcuni ingegneri abbiano programmato dispositivi PAL modificando manualmente i file contenenti i dati del modello di fusibile binario, la maggior parte ha scelto di progettare la propria logica utilizzando un linguaggio di descrizione hardware (HDL) come ABEL di Data I / O , CUPL di dispositivi logici o PALASM di MMI . Si trattava di programmi CAD ( computer-assisted design ) (ora denominati " automazione della progettazione elettronica ") che traducevano (o "compilavano") le equazioni logiche dei progettisti in file binari di mappatura dei fusibili usati per programmare (e spesso testare) ogni dispositivo.

PALASMO

Il linguaggio PALASM (da "PAL assembler") è stato sviluppato da John Birkner all'inizio degli anni '80 e il compilatore PALASM è stato scritto da MMI in FORTRAN IV su un IBM 370/168. MMI ha reso il codice sorgente disponibile agli utenti gratuitamente. Nel 1983, i clienti MMI eseguivano versioni su DEC PDP-11 , Data General NOVA , Hewlett-Packard HP 2100 , MDS800 e altri.

È stato utilizzato per esprimere equazioni booleane per i pin di output in un file di testo che è stato poi convertito nel file "fuse map" per il sistema di programmazione utilizzando un programma fornito dal fornitore; in seguito l'opzione di traduzione dagli schemi divenne comune e, in seguito, le "fuse map" potevano essere "sintetizzate" da un HDL (linguaggio di descrizione dell'hardware) come Verilog .

CUPL

Assist Tecnologia rilasciato CUPL ( C ompiler per U niversal P rogrammable L OGIC) nel settembre 1983. Il software è stato sempre indicato come CUPL e mai l'acronimo espanso. È stato il primo strumento di progettazione commerciale che supportava più famiglie PLD. La versione iniziale era per PC IBM e MS-DOS, ma era scritta nel linguaggio di programmazione C in modo che potesse essere trasferita su piattaforme aggiuntive. La tecnologia assistita è stata acquisita da Personal CAD Systems (P-CAD) nel luglio 1985. Nel 1986, il pacchetto di acquisizione schematica di PCAD potrebbe essere utilizzato come front-end per CUPL. CUPL è stato successivamente acquisito da Logical Devices ed è ora di proprietà di Altium . CUPL è attualmente disponibile come pacchetto di sviluppo integrato per Microsoft Windows.

Atmel rilascia WinCUPL gratuitamente (il proprio software di progettazione per tutti gli SPLD e CPLD Atmel). Atmel è stata acquisita da Microchip.

ABEL

Data I / O Corporation ha rilasciato ABEL nell'aprile 1984. Il team di sviluppo era Michael Holley, Mike Mraz, Gerrit Barrere, Walter Bright , Bjorn Freeman-Benson, Kyu Lee, David Pellerin, Mary Bailey, Daniel Burrier e Charles Olivier.

Data I / O si è trasformato dalla linea di prodotti ABEL in una società EDA chiamata Synario Design Systems e poi ha venduto Synario a MINC Inc nel 1997. MINC si è concentrata sullo sviluppo di strumenti di sviluppo FPGA. L'azienda ha chiuso i battenti nel 1998 e Xilinx ha acquisito alcune delle attività di MINC, tra cui il linguaggio e il set di strumenti ABEL. ABEL divenne quindi parte della suite di strumenti Xilinx Webpack. Ora Xilinx possiede ABEL.

Programmatori di dispositivi

I programmatori di dispositivi più diffusi includevano il programmatore logico modello 60A di Data I / O Corporation e il modello 2900.

Uno dei primi programmatori PAL è stato lo Structured Design SD20 / 24. Avevano il software PALASM integrato e richiedevano solo un terminale CRT per inserire le equazioni e visualizzare i grafici dei fusibili. Dopo la fusione, le uscite del PAL potrebbero essere verificate se i vettori di prova fossero stati inseriti nel file sorgente.

Successori

Dopo che MMI ha avuto successo con le parti PAL a 20 pin introdotte intorno al 1978, AMD ha introdotto il PAL 22V10 a 24 pin con funzionalità aggiuntive. Dopo aver acquisito MMI (circa 1987), AMD ha scorporato un'attività consolidata come Vantis e tale attività è stata acquisita da Lattice Semiconductor nel 1999.

Altera ha introdotto l'EP300 (primo CMOS PAL) nel 1983 e successivamente è passata al business FPGA.

Lattice Semiconductor ha introdotto la famiglia GAL ( Generic Array Logic ) nel 1985, con equivalenti funzionali dei PAL della serie "V" che utilizzavano piani logici riprogrammabili basati sulla tecnologia EEPROM (memoria di sola lettura programmabile cancellabile elettricamente). National Semiconductor era una seconda fonte per le parti GAL.

Image
AMD Palce 16V8H-25JC

AMD ha introdotto una famiglia simile chiamata PALCE. In generale una parte GAL è in grado di funzionare come uno qualsiasi dei dispositivi PAL della famiglia simile. Ad esempio, il GAL 16V8 è in grado di sostituire i PAL 16L8, 16H8, 16H6, 16H4, 16H2 e 16R8 (e molti altri).

ICT (International CMOS Technology) ha introdotto il PEEL 18CV8 nel 1986. La parte EEPROM CMOS a 20 pin poteva essere utilizzata al posto di qualsiasi PAL bipolare con uscita registrata e consumava molta meno energia.

I dispositivi logici programmabili su larga scala sono stati introdotti da Atmel , Lattice Semiconductor e altri. Questi dispositivi estendevano l'architettura PAL includendo più piani logici e / o seppellendo macrocellule logiche all'interno dei piani logici. Il termine dispositivo logico programmabile complesso (CPLD) è stato introdotto per differenziare questi dispositivi dai predecessori PAL e GAL, che a volte venivano chiamati dispositivi logici programmabili semplici (SPLD).

Un altro grande dispositivo logico programmabile è l' FPGA ( field-programmable gate array ). Si tratta di dispositivi attualmente realizzati da Intel (che ha acquisito Altera ) e Xilinx e altri produttori di semiconduttori.

Guarda anche

Altri tipi di dispositivi logici programmabili:

Produttori attuali e precedenti di dispositivi logici programmabili:

Produttori attuali e precedenti di programmatori di dispositivi PAL:

Riferimenti

Ulteriore lettura

  • Birkner, John ; Vincent Coli (1981). Manuale PAL Programmable Array Logic (2 ed.). Monolithic Memories, Inc.
  • Birkner, John; Vincent Coli (1983). Manuale PAL Programmable Array Logic (3 ed.). Memorie monolitiche, Inc.
  • Alford, Roger C. (1989). Guida del progettista di logica programmabile . Howard W. Sams. ISBN   0-672-22575-1 .
  • JEDEC Standard JESD3-C, formato di trasferimento dati standard tra sistema di preparazione dati e programmatore di dispositivi logici programmabili , giugno 1994. Documenti JEDEC