Dispozitiv logic programabil - Programmable logic device
Un dispozitiv logic programabil ( PLD ) este o componentă electronică utilizată pentru a construi circuite digitale reconfigurabile . Spre deosebire de circuitele integrate (IC) care constau din porți logice și au o funcție fixă, un PLD are o funcție nedefinită în momentul fabricării . Înainte ca PLD să poată fi utilizat într-un circuit, acesta trebuie să fie programat (reconfigurat) utilizând un program specializat.
Logică programabilă timpurie
În 1969, Motorola a oferit XC157, o matrice de porți programată cu mască, cu 12 porți și 30 de pini de intrare / ieșire necomprimați.
În 1970, Texas Instruments a dezvoltat un IC programabil cu mască bazat pe memoria asociativă IBM read-only read sau ROAM. Acest dispozitiv, TMS2000, a fost programat prin modificarea stratului metalic în timpul producției IC. TMS2000 avea până la 17 intrări și 18 ieșiri cu 8 flip flop JK pentru memorie. TI a inventat termenul Programmable Logic Array (PLA) pentru acest dispozitiv.
În 1971, General Electric Company (GE) a dezvoltat un dispozitiv logic programabil bazat pe noua tehnologie de memorie numai în citire programabilă (PROM). Acest dispozitiv experimental s-a îmbunătățit pe ROAM-ul IBM, permițând logica pe mai multe niveluri. Intel tocmai a introdus PROM-ul șters UV cu poartă mobilă, astfel încât cercetătorul de la GE a încorporat această tehnologie. Dispozitivul GE a fost primul PLD șters care a fost dezvoltat vreodată, precedând Altera EPLD cu peste un deceniu. GE a obținut mai multe brevete timpurii pe dispozitive logice programabile.
În 1973, National Semiconductor a introdus un dispozitiv PLA programabil cu mască (DM7575) cu 14 intrări și 8 ieșiri fără registre de memorie. Acest lucru a fost mai popular decât partea TI, dar costul realizării măștii metalice a limitat utilizarea sa. Dispozitivul este semnificativ deoarece a stat la baza matricei logice programabile de câmp produse de Signetics în 1975, 82S100. ( Intersil a bătut de fapt pe Signetics pe piață, dar randamentul slab a condamnat partea lor.)
În 1974, GE a încheiat un acord cu Memoriile Monolitice (MMI) pentru a dezvolta un dispozitiv logic mască-programabil care să includă inovațiile GE. Dispozitivul a fost denumit „Programmable Associative Logic Array” sau PALA. MMI 5760 a fost finalizat în 1976 și ar putea implementa circuite pe mai multe niveluri sau secvențiale de peste 100 de porți. Dispozitivul a fost susținut de un mediu de proiectare GE în care ecuațiile booleene ar fi convertite în modele de mască pentru configurarea dispozitivului. Piesa nu a fost niciodată adusă pe piață.
PLA
În 1970, Texas Instruments a dezvoltat un IC programabil pentru mască bazat pe memoria asociativă IBM read-only sau ROAM. Acest dispozitiv, TMS2000, a fost programat prin modificarea stratului metalic în timpul producției IC. TMS2000 avea până la 17 intrări și 18 ieșiri cu 8 flip-flops JK pentru memorie. TI a inventat termenul matrice logică programabilă pentru acest dispozitiv.
O matrice logică programabilă (PLA) are o matrice de poartă ȘI programabilă, care se leagă de o matrice de poartă SAU programabilă, care poate fi apoi completată condiționat pentru a produce o ieșire. Un PLA este similar cu un concept de ROM, totuși un PLA nu oferă decodarea completă a unei variabile și nu generează toate minterms - urile ca într-un ROM.
PAL
Dispozitivele PAL au matrici de celule de tranzistoare dispuse într-un plan „OR-fix, programabil-ȘI” utilizat pentru a implementa ecuații logice binare „sumă de produse” pentru fiecare dintre ieșiri în ceea ce privește intrările și feedback sincron sau asincron de la ieșirile.
MMI a introdus un dispozitiv de descoperire în 1978, logica matricei programabile sau PAL. Arhitectura a fost mai simplă decât cea a Signetics FPLA, deoarece a omis matricea OR programabilă. Acest lucru a făcut ca piesele să fie mai rapide, mai mici și mai ieftine. Acestea erau disponibile în pachete DIP de 20 pini 300 mil, în timp ce FPLA-urile veneau în pachete 28 pini 600 mil. Manualul PAL a demistificat procesul de proiectare. Software-ul de proiectare PALASM (asamblorul PAL) a convertit ecuațiile booleene ale inginerilor în modelul de siguranțe necesar pentru programarea piesei. Dispozitivele PAL au fost în curând furnizate de National Semiconductor, Texas Instruments și AMD.
După ce MMI a reușit cu piesele PAL cu 20 de pini, AMD a introdus PAL -ul cu 24 de pini 22V10 cu caracteristici suplimentare. După cumpărarea MMI (1987), AMD a încheiat o operațiune consolidată ca Vantis , iar acea afacere a fost achiziționată de Lattice Semiconductor în 1999.
GAL-uri
O îmbunătățire a PAL-ului a fost dispozitivul generic pentru logica matricei, sau GAL, inventat de Lattice Semiconductor în 1985. Acest dispozitiv are aceleași proprietăți logice ca PAL, dar poate fi șters și reprogramat. GAL-ul este foarte util în etapa de prototipare a unui design, când orice erori din logică pot fi corectate prin reprogramare. GAL-urile sunt programate și reprogramate folosind un programator PAL sau utilizând tehnica de programare în circuit pe cipurile de sprijin.
GAL-urile cu rețea combină tehnologia CMOS și poarta plutitoare ștearsă electric (E 2 ) pentru un dispozitiv logic de mare viteză, cu putere redusă. Un dispozitiv similar numit PEEL (logică ștearsă electric programabilă) a fost introdus de corporația internațională CMOS Technology (ICT).
CPLD-uri
PAL-urile și GAL-urile sunt disponibile numai în dimensiuni mici, echivalente cu câteva sute de porți logice. Pentru circuite logice mai mari, pot fi utilizate PLD-uri sau CPLD-uri complexe . Acestea conțin echivalentul mai multor PAL-uri legate prin interconectări programabile, toate într-un singur circuit integrat . CPLD-urile pot înlocui mii sau chiar sute de mii de porți logice.
Unele CPLD-uri sunt programate folosind un programator PAL, dar această metodă devine incomodă pentru dispozitivele cu sute de pini. O a doua metodă de programare este lipirea dispozitivului pe placa sa de circuite imprimate, apoi alimentarea acestuia cu un flux de date seriale de pe un computer personal. CPLD conține un circuit care decodifică fluxul de date și configurează CPLD pentru a-și îndeplini funcția logică specificată. Unii producători (inclusiv Altera și Microsemi ) folosesc JTAG pentru a programa CPLD-uri în circuit din fișiere .JAM .
FPGA
În timp ce PAL-urile erau dezvoltate în GAL-uri și CPLD-uri (toate discutate mai sus), se întâmpla un flux separat de dezvoltare. Acest tip de dispozitiv se bazează pe tehnologia gate array și se numește gate-programmable field array (FPGA). Exemplele timpurii de FPGA sunt matricea 82s100 și secvențialul 82S105, de către Signetics, introdus la sfârșitul anilor 1970. 82S100 era o serie de termeni AND. 82S105 avea și funcții de flip flop.
(Observație: 82S100 și IC-uri similare de la Signetics au structură PLA, AND-Plane + OR-Plane)
FPGA-urile folosesc o rețea de porți logice și, odată stocate, datele nu se schimbă, similar cu cel al unui tablou de poartă obișnuit. Termenul "programabil în câmp" înseamnă că dispozitivul este programat de client, nu de producător.
FPGA-urile sunt de obicei programate după ce au fost lipite pe placa de circuit, într-un mod similar cu cel al CPLD-urilor mai mari. În majoritatea FPGA-urilor mai mari, configurația este volatilă și trebuie reîncărcată în dispozitiv ori de câte ori este alimentată alimentarea sau este necesară o funcționalitate diferită. Configurarea este de obicei stocată într-o configurație PROM sau EEPROM . Versiunile EEPROM pot fi programabile în sistem (de obicei prin JTAG ).
Diferența dintre FPGA și CPLD este că FPGA se bazează intern pe tabele de căutare (LUT), în timp ce CPLD-urile formează funcțiile logice cu porțile de mare (de exemplu, suma produselor ). CPLD-urile sunt destinate proiectelor mai simple, în timp ce FPGA-urile sunt destinate proiectelor mai complexe. În general, CPLD-urile sunt o alegere bună pentru aplicații de logică combinațională largă , în timp ce FPGA-urile sunt mai potrivite pentru mașinile cu stări mari , cum ar fi microprocesoarele .
EPLD-uri
Folosind aceeași tehnologie ca și EPROM-urile , EPLD- urile au în pachet o fereastră de cuarț care permite ștergerea acesteia la expunerea la lumina UV.
Folosind aceeași tehnologie ca EEPROM-urile , EEPLD-urile pot fi șterse electric.
Un dispozitiv logic programabil șters ( EPLD ) este un circuit integrat care cuprinde o serie de PLD-uri care nu sunt pre-conectate; conexiunile sunt programate electric de către utilizator. Majoritatea dispozitivelor GAL și FPGA sunt exemple de EPLD-uri.
Alte variante
Acestea sunt circuite cu microprocesor care conțin unele funcții fixe și alte funcții care pot fi modificate de codul care rulează pe procesor. Proiectarea sistemelor de auto-modificare necesită inginerilor să învețe noi metode și să fie dezvoltate noi instrumente software.
PLD-urile sunt vândute acum care conțin un microprocesor cu o funcție fixă (așa-numitul nucleu ) înconjurat de logică programabilă. Aceste dispozitive permit proiectanților să se concentreze pe adăugarea de noi caracteristici proiectelor fără a fi nevoie să vă faceți griji cu privire la funcționarea microprocesorului. De asemenea, microprocesorul cu funcție fixă ocupă mai puțin spațiu pe cip decât o parte din matricea de poartă programabilă care implementează același procesor, lăsând mai mult spațiu pentru matricea de poartă programabilă să conțină circuitele specializate ale proiectantului.
Cum își păstrează configurația PLD-urile
Un PLD este o combinație între un dispozitiv logic și un dispozitiv de memorie . Memoria este utilizată pentru a stoca modelul care a fost dat cipului în timpul programării. Majoritatea metodelor de stocare a datelor într-un circuit integrat au fost adaptate pentru utilizare în PLD-uri. Acestea includ:
Antifuzibilele din siliciu sunt conexiuni realizate prin aplicarea unei tensiuni pe o zonă modificată de siliciu din interiorul cipului. Acestea se numesc antifuzibile, deoarece funcționează în sens opus siguranțelor normale, care încep viața ca conexiuni până când sunt rupte de un curent electric.
SRAM sau RAM statică este un tip de memorie volatil, ceea ce înseamnă că conținutul său se pierde de fiecare dată când este oprită alimentarea. Prin urmare, PLD-urile bazate pe SRAM trebuie programate de fiecare dată când circuitul este pornit. Acest lucru se face de obicei automat de o altă parte a circuitului.
O celulă de memorie EPROM este un MOSFET (tranzistor cu efect de câmp semiconductor metal-oxid sau tranzistor MOS) care poate fi pornit prin prinderea permanentă a unei sarcini electrice pe electrodul de poartă. Acest lucru este realizat de un programator PAL. Încărcarea rămâne mulți ani și poate fi îndepărtată doar prin expunerea cipului la lumină ultravioletă puternică într-un dispozitiv numit radier EPROM.
Memoria flash nu este volatilă, păstrându-și conținutul chiar și atunci când alimentarea este oprită. Este stocat pe celule de memorie MOSFET cu poartă plutitoare și poate fi șters și reprogramat după cum este necesar. Acest lucru îl face util în PLD-uri care pot fi reprogramate frecvent, cum ar fi PLD-urile utilizate în prototipuri. Memoria flash este un fel de EEPROM care conține informații folosind încărcături electrice prinse similare cu EPROM. În consecință, memoria Flash poate conține informații de ani de zile, dar posibil nu la fel de mulți ani ca EPROM.
Începând cu 2005, majoritatea CPLD-urilor sunt programabile și șterse electric și sunt nevolatile. Acest lucru se datorează faptului că sunt prea mici pentru a justifica inconvenientul programării celulelor SRAM interne de fiecare dată când pornesc, iar celulele EPROM sunt mai scumpe datorită pachetului lor ceramic cu fereastră de cuarț.
Limbaje de programare PLD
Multe dispozitive de programare PAL acceptă intrarea într-un format de fișier standard, denumit în mod obișnuit „ fișiere JEDEC ”. Acestea sunt similare cu compilatoarele de software . Limbile utilizate ca cod sursă pentru compilatoarele logice se numesc limbaje de descriere hardware sau HDL.
PALASM , ABEL și CUPL sunt frecvent utilizate pentru dispozitive cu complexitate redusă, în timp ce Verilog și VHDL sunt limbaje populare de descriere la nivel superior pentru dispozitive mai complexe. ABEL, mai limitat, este adesea utilizat din motive istorice, dar pentru noile modele VHDL este mai popular, chiar și pentru modelele cu complexitate redusă.
Pentru limbaje de programare PLD moderne, fluxuri de proiectare și instrumente, consultați FPGA și Reconfigurable computing .
Dispozitive de programare PLD
Un programator de dispozitiv este utilizat pentru a transfera modelul logic boolean în dispozitivul programabil. În primele zile ale logicii programabile, fiecare producător de PLD a produs, de asemenea, un programator de dispozitive specializat pentru familia sa de dispozitive logice. Mai târziu, au venit pe piață programatori universali de dispozitive care au sprijinit mai multe familii de dispozitive logice de la diferiți producători. Programatorii de dispozitive de astăzi pot programa de obicei PLD-uri comune (în mare parte echivalente PAL / GAL) de la toți producătorii existenți. Formatele de fișiere obișnuite utilizate pentru a stoca modelul logic boolean (siguranțe) sunt JEDEC, Altera POF (fișier obiect programabil) sau Xilinx BITstream.
Vezi si
- Dispozitiv logic programabil complex (CPLD)
- Matrice de poartă programabilă pe teren (FPGA)
- Matrice Macrocell
- Logica matricei programabile (PAL)
Referințe
linkuri externe
- "Instrumente PLD Crearea SVF, JAM, STAPL și alte formate" . JTAG / limitare-scanare . Corelis. 1 decembrie 2010.
- „FPGA și CPLD” . Lattice Semiconductor.