Dispositiu lògic programable

De Viquipèdia
Dreceres ràpides: navegació, cerca

Un dispositiu lògic programable o PLD és un component electrònic utilitzat als circuits digitals. A diferència d'altres dispositius, com les portes lògiques, que implementen una funció predefinida i no editable, un PLD no està preconfigurat per a realitzar una funció lògica específica quan es fabrica. Abans de poder utilitzar-lo en un circuit haurà ser programat. Aquests circuits de lògica programada, al contrari dels basats a la lògica cablejada, permeten utilitzar un circuit per a moltes funcions diferents amb el simple canvi del programari incrustat que incorpora.

Ús de ROMs com PLDs[modifica | modifica el codi]

Abans que inventessin les PLDs, els xips de Memòria ROM s'utilitzaven per crear funcions de lògica combinacional arbitràries amb un nombre determinat d'entrades. Considerant una ROM amb m entrades, a les que es denomina línies de direcció, i amb n sortides, a les que es denomina línies de dades. Quan s'utilitza com memòria, la ROM conté  2^m paraules de n bits. Suposem que les entrades no són direccionades per una direcció de m-bits, sinó per m senyals lògiques independents. Teòricament, hi ha  2^m funcions booleanes possibles d'aquestes m senyals, però l'estructura de la ROM permet només produir n d'aquestes funcions en els pins de sortida. Per tant, en aquest cas, la ROM es torna un equivalent de n circuits lògics separats, cadascun generant una funció escollida de les m entrades.

L'avantatge d'utilitzar una ROM d'aquesta manera és que qualsevol funció concebible de les m entrades pot ser col·locada per les n sortides, fent aquest el dispositiu lògic combinacional de major propòsit general disponible. També les PROMs (ROM programables), EPROMs (PROMs d'esborrat per ultraviolada) i EEPROMs (PROMs d'esborrat elèctric) disponibles poden ser programades d'aquesta manera amb un programador PROM maquinari o programari. No obstant això, existeixen diverses inconvenients:

  • Són bastant més lentes que els circuits lògics dedicats.
  • No necessàriament poden proveir de protecció davant transicions lògiques asíncrones.
  • Consumeixen més potència.
  • Només es fa servir una petita fracció de la seva capacitat en una sola aplicació: un ús ineficient de l'espai.
  • Per si soles no poden ser utilitzades per a circuits de lògica seqüencial, ja que no contenen biestables. Per realitzar alguns circuits seqüencials (com màquines d'estat) s'utilitzava un registre TTL extern.

Les EPROMs comuns (com la 2.716), se segueixen utilitzant de vegades d'aquesta manera per gent que té com a hobby el disseny de circuits, ja que sovint tenen algunes soltes. A les ROM utilitzades d'aquesta manera se les coneix com la "PAL del pobre".

Lògica programable primerenca[modifica | modifica el codi]

El 1970, Texas Instruments va desenvolupar un Element de configuració de màscara programable basat en la memòria associativa de només lectura (Roam ) de IBM. Aquest dispositiu, el TMS2000, era programat alterant la capa metàl·lica durant la producció del CI. El TMS2000 tenia fins a 17 entrades i 18 sortides amb 8 biestables JK com a memòria. Texas Instruments va encunyar el terme Programmable logic array per a aquest dispositiu.

El 1973 National Semiconductor va introduir un dispositiu PLA de màscara programable (DM7575) amb 14 entrades i 8 sortides sense registres de memòria. Aquest era més popular que el de Texas Instruments, però el cost de fer la màscara metàl·lica limitava el seu ús. El dispositiu és significatiu per ser la base de la FPGA ( Field Programmable Logic Array ) produït per Signetics el 1975, l'82S100.

El 1971, General Electric desenvolupava un PLD basat en la nova tecnologia PROM. Aquest dispositiu experimental va millorar el Roam d'IBM permetent realitzar lògica mulinivel. Intel acabava d'introduir la PROM de porta flotant esborrable per UV de manera que els desenvolupadors a General Electric van incorporar aquesta tecnologia. El dispositiu de General Electric era el primer PLD mai desenvolupat, antecessora de l'EPLD de Altera en una dècada. General Electric va obtenir diverses patents primerenques en PLDs.

El 1974, General Electric va signar un acord amb Monolithic Memories per a desenvolupar un PLD de màscara programable incorporant les innovacions de General. El dispositiu es va batejar com Programmable Associative Logic Array (PALA, matriu lògica associativa programable). El MMI 5.760 va ser acabat el 1976 i podia implementar circuits multinivell o seqüencials de més de 100 portes. El dispositiu estava suportat per l'entorn de desenvolupament de General, on les equacions Booleanes podien ser convertides a patrons de màscara per configurar el dispositiu. L'integrat mai es va comercialitzar.

PAL[modifica | modifica el codi]

Article principal: matriu lògica programable

MMI introduir un dispositiu revolucionari en 1978, la Programmable Array Logic ( Matriu lògica programable ). L'arquitectura era més senzilla que la FPLA de Signetics perquè va ometre la matriu OR programable. Això va fer els dispositius més ràpids, més petits i més barats. Eren a encapsulats de 20 pins i DIP de 300 mil·lèsimes de polzada, mentre que les FPLAs venien en encapsulats de 28 pins i DIP de 600 mil·lèsimes de polzada. Certes publicacions sobre PALS desmitifiquen el procés de disseny. El programari de disseny PALASM ( PAL Assembler , assemblador PAL) convertia les equacions Booleanes dels enginyers en el patró de fusibles requerit per programar el dispositiu. Els PAL de MMI aviat van ser distribuïts per National Semiconductor, Texas Instruments i AMD.

Després de l'èxit de MMI amb els PAL de 20 pins, AMD va introduir els 22V10 de 24 forats en característiques addicionals. Després de comprar a MMI (1987), AMD va desenvolupar una operació consolidada com Vantis, adquirida per Lattice Semiconductor el 1999.

També hi ha PLAS: Programmable Logic Array.

Generic array logic[modifica | modifica el codi]

Lattice GAL 16V8 i 20V8

Una innovació de la PAL va ser la matriu lògica genèrica (Generic array logic) o GAL. Totes dues van ser desenvolupades per Lattice Semiconductor el 1985. Aquest dispositiu té les mateixes propietats lògiques que el PAL, però pot ser esborrat i reprogramat. La GAL és molt útil en la fase de prototipat d'un disseny, quan una fallada en la lògica pot ser corregit per reprogramació. Les Gals es programen i reprogramen utilitzant un programador OPAL, o utilitzant la tècnica de programació circuital en xips secundaris.

Un dispositiu similar anomenat PEEL (programmable electrically Erasable logic o lògica programable elèctricament esborrable ) va ser introduït per la International CMOS Technology (ITC) corporation.

CPLDs[modifica | modifica el codi]

Article principal: CPLD

Les Pals i Gals només disponibles en mides petits, equivalents a uns pocs centenars de portes lògiques. Per circuits lògics més grans, es poden utilitzar PLDs complexos o CPLD s. Aquests contenen l'equivalent a diverses PAL enllaçades per interconnexions programables, tot això en el mateix circuit integrat. Les CPLDs poden reemplaçar milers, o fins i tot centenars de milers de portes lògiques.

Algunes CPLDs es programen utilitzant un programador PAL, però aquest mètode no és manejable per a dispositius amb centenars de pins. Un segon mètode de programació és soldar el dispositiu en el seu circuit imprès. Les CPLDs contenen un circuit que descodifica l'entrada de dades i configura la CPLD per realitzar la seva funció lògica específica.

Cada fabricant té un nom propietari per a aquest sistema de programació. Per exemple, Lattice Semiconductor la flama in-system programming (programació dins del sistema). No obstant això, aquests sistemes propietaris estan deixant pas al estadndar l' Joint Test Action Group (JTAG).

FPGAs[modifica | modifica el codi]

Article principal: FPGA

Mentre el desenvolupament de les PALS s'enfocava cap a les Gals i CPLDs (veure seccions superiors), va aparèixer un corrent de desenvolupament diferent. Aquest corrent de desenvolupament va desembocar en un dispositiu basat en la tecnologia de matriu de portes i se li va denominar field-programmable gate array (FPGA). Alguns exemples de les primeres FPGAs són la matriu 82s100 i el seqüenciador 82S105 de Signetics, presentats a finals dels 1970. El 82S100 era una matriu de termes I, i també tenia funcions de biestable.

Les FPGAs utilitzen una reixeta de portes lògiques, similar a la d'una matriu de portes ordinàries, però la programació en aquest cas la realitza el client, no el fabricant. El terme field-programmable (lliteres programable en el camp ) es refereix a que la matriu es defineix fora de la fàbrica, o "al camp".

Les FPGAs es programen normalment després de ser soldades a la placa, en una forma similar als CPLDs grans. A les FPGAs més grans, la configuració és volàtil i ha de ser reescrita cada vegada que s'encén o es necessita una funcionalitat diferent. La configuració es guarda normalment en una PROM o EEPROM. Les versions EEPROM poden ser programades mitjançant tècniques com l'ús de cables JTAG.

Les FPGAs i els CPLDs són bones opcions per a una mateixa tasca. Algunes vegades la decisió sobre una o altra és més econòmica que tècnica, o pot dependre de la preferència personal o experiència de l'enginyer.

Altres variants[modifica | modifica el codi]

Actualment, hi ha força interès en sistemes reconfigurables. Aquests sistemes es basen en circuits microprocessadors i conté algunes funcions prefixades i d'altres que poden ser alterades per codi en el processador. Per dissenyar sistemes que s'auto-alterin, cal que els enginyers aprenguin nous mètodes i que noves eines de programari es desenvolupin.

Les PLDs que es venen actualment, contenen un microprocessador amb una funció prefixada (l' nucli ) envoltat amb dispositius de lògica programable. Aquests dispositius permeten als dissenyadors concentrar-se en afegir noves característiques als dissenys sense haver de preocupar de fer que funcioni el microprocessador.

Emmagatzematge de la configuració en les PLDs[modifica | modifica el codi]

Una PLD és una combinació d'un dispositiu lògic i una memòria. La memòria s'utilitza per emmagatzemar el patró el qual se li ha donat al xip durant la programació. La majoria dels mètodes per emmagatzemar dades en un circuit integrat han estat adaptats per l'ús en PLDs. Entre aquests s'inclouen:

Els antifusibles de silici són elements d'emmagatzematge utilitzats en les PAL, el primer tipus de PLD. Aquests antifusibles s'encarreguen de formar connexions mitjançant l'aplicació de voltatge en una àrea modificada del xip. Se l'anomena antifusibles perquè funcionen de manera oposada als fusells normals, els quals permeten la connexió fins que es trenquen per excés de corrent elèctric.

Les SRAM o RAM estàtiques, són un tipus volàtil de memòria, el que vol dir que el seu contingut es perd cada vegada que es desconnecten. Les PLDs basades en SRAM han de ser programades cada vegada que el circuit s'encén. Generalment això ho fa una altra part del circuit.

Una cèl·lula EPROM és un transistor MOS (metall-òxid-semiconductor) que pot activar atrapant una càrrega elèctrica permanentment en el seu porta , cosa que realitza un programador PAL. La càrrega roman durant alguns anys només pot ser eliminada exposant al xip a una llum ultraviolada fort en un dispositiu anomenat esborrany EPROM.

Les memòries flash són no volàtils, de manera que retenen els seus continguts fins i tot quan se'ls talla l'alimentació. Pot esborrar i reprogramades tant com sigui necessari, la qual cosa les fa útils per a les memòries PLD.

A partir de 2005, la majoria de les CPLDs són del tipus EEPROM i no volàtils. Això és degut al fet que són massa petites per justificar el poc convenient que és la programació interna de cel SRAM cada vegada que s'inicien, i el costós de les cèl·lules EPROM causa de la seva encapsulat ceràmic amb una finestra de quars.

Llenguatges de programació de PLDs[modifica | modifica el codi]

Diversos dispositius de programació de PALS admeten l'entrada mitjançant un format estàndard d'arxiu, denominats comunament com 'arxius JEDEC'. Són anàlegs als compilador és programari. Els llenguatges utilitzats com a codi font per compiladors lògics es denominen llenguatges de descripció de maquinari (HDLs).

PALASM i ABEL s'utilitzen freqüentment per a dispositius de baixa complexitat, mentre que Verilog i VHDL són llenguatges de descripció de hardware d'alt nivell molt populars per a dispositius més complexos.

El més limitat ABEL s'usa normalment per raons històriques, però per a nous dissenys és més popular VHDL, fins i tot per a dissenys de baixa complexitat.

Vegeu també[modifica | modifica el codi]

A Wikimedia Commons hi ha contingut multimèdia relatiu a: Dispositiu lògic programable Modifica l'enllaç a Wikidata