Dispozitiv logic programabil

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Un dispozitiv logic programabil (în engleză Programmable Logic Device, adesea prescurtat în PLD), în „ electronică digitală ”, este un circuit integrat programabil utilizat pe scară largă în circuitele digitale . Spre deosebire de o poartă logică , care implementează o funcție logică predefinită și nemodificabilă, un PLD, în momentul fabricării, nu este configurat pentru a îndeplini o funcție logică specifică și, prin urmare, înainte de a putea să-l folosească într-un circuit, trebuie să fie programat.

fundal

Acest tip de dispozitiv a fost dezvoltat în a doua jumătate a anilor '60 , odată cu dezvoltarea la "laboratoarele de diode configurabile" la laboratoarele Harris Semiconductor . În 1970, Texas Instrument a creat primul circuit integrat bazat în întregime pe ROAM ( Read Only Associative Memory ), alcătuind termenul PLA (Programmable Logic Array). Aproape în aceeași perioadă, Harris a introdus pe piață PROM ( Programmable Read Only Memory ) care, pe lângă faptul că este doar o memorie de citire, și-a găsit folosirea în realizarea mașinilor de stare simple sau a decodificatoarelor de adrese. În 1973, National Semiconductor a produs o versiune simplificată a componentelor PLA, numită DM7575 / DM8575, cu doar 14 intrări și 8 ieșiri și fără elemente de memorie încorporate. S-au înregistrat progrese suplimentare în 1978, odată cu introducerea pe piață a primelor componente PAL (Programmable Array Logic) de către Monolithic Memories, Inc., care a folosit limbajul de programare, numit PALASM (PALA ASseMbler), similar cu FORTRAN , dar cu un instrument simplu sintaxă care a făcut posibilă descrierea funcțiilor logice complexe.

Caracteristici

Limbajele de programare utilizate

De obicei, este dificil și incomod să scrieți codul pentru a programa PLD-urile manual, și, prin urmare, sunt utilizate computere și software speciale, numite compilatoare logice , similar cu compilatoarele clasice care generează programe software executabile din fișiere sursă . În cazul PLD-urilor, limbile sursă se numesc limbaje de descriere hardware (HDL). De exemplu, limbajul ABEL este potrivit pentru logici de complexitate redusă, Verilog și VHDL sunt potrivite pentru aplicații mai complexe.

Stocarea configurației

Un PLD conține atât componente logice, cât și componente de memorie , care conțin informații de configurare. Amintirile pot fi de următorul tip:

Antifuzibilele din siliciu sunt utilizate în PAL-uri și sunt realizate prin aplicarea unei tensiuni între două puncte ale stratului intern de siliciu al cipului. Au acest nume deoarece funcționează în sens opus siguranțelor , care inițial se conduc și se rup atunci când trece curentul de defect.

SRAM-urile și RAM-urile sunt memorii volatile, deci programarea se pierde când este oprită și trebuie reîncărcată la repornire, de obicei automat, de o parte dedicată a circuitului. Memoriile flash nu sunt volatile, adică păstrează date chiar și atunci când circuitul nu este alimentat și pot fi șterse și reprogramate cu ușurință. O celulă EPROM se bazează pe tranzistoare de tip MOS care pot fi puse în starea ON prin limitarea permanentă a sarcinilor electrice în terminalul porții . Programarea se face folosind un dispozitiv numit programator PAL . Încărcările rămân stocate timp de mulți ani și pot fi îndepărtate prin expunerea cipului la radiații ultraviolete de înaltă intensitate emise de o radieră EPROM .

Relația cu utilizarea ROM

Înainte de introducerea PLD-urilor, componentele ROM erau utilizate pentru a implementa orice logică combinatorie pornind de la un set dat de intrări. Un ROM cu m intrări (care corespund adreselor ) și n ieșiri (care corespund datelor ) pot conține cuvinte de n biți. Să ne imaginăm acum că intrările nu sunt alcătuite dintr-o adresă de m bit, ci în loc de m semnale logice independente. Teoretic există mai multe funcții booleene posibile ale acestor m semnale, dar structura ROM permite să definească doar n dintre aceste funcții pe terminalele de ieșire. ROM-ul, cu alte cuvinte, devine echivalent cu n circuite logice separate, fiecare dintre care îndeplinește o funcție combinatorie dată a m intrărilor. Avantajul utilizării unui ROM în acest mod constă în faptul că fiecare funcție posibilă a intrărilor m poate fi asociată fiecăreia dintre cele n ieșiri, astfel încât să se creeze un circuit logic combinațional cu flexibilitate maximă.

PROM- urile (ROM-uri programabile), EPROM-urile (PROM-uri șterse cu raze ultraviolete ) și EEPROM-urile (PROM-uri șterse electric) pot fi configurate și programate folosind echipamente disponibile ușor, fără a fi nevoie de dispozitive hardware sau software speciale. În general, se poate face o distincție între dispozitivele logice care pot fi programate doar o dată sau de mai multe ori sau care pot fi reprogramate. Aceste dispozitive, însă, având în vedere logica lor generică care vizează o programare specifică, au o serie de limitări:

  • ele sunt de obicei mai lente decât circuitele logice dedicate corespunzătoare sau scopul specific ( ASIC ),
  • nu sunt întotdeauna imuni la erori în cazul tranzițiilor asincrone,
  • consumă mai multă energie,
  • deoarece sunt adesea folosite doar pentru o mică parte din capacitatea lor teoretică, implică o ocupare excesivă a spațiului,
  • nu pot fi utilizate cu ușurință pentru a implementa circuite logice secvențiale , deoarece nu au funcția flip-flop .

Unele dintre modelele mai simple EPROM, cum ar fi modelul 2716, sunt încă uneori folosite astăzi în acest mod, în special de către designerii amatori ( „PAL-ul săracului” , așa cum sunt uneori menționate în glumă).

Tipuri

Interesul pentru sistemele reconfigurabile, adică pentru acele circuite care conțin diverse funcționalități standard care pot fi modificate de programul care rulează pe procesor, tinde să crească astăzi. Proiectarea corectă a acestui tip de dispozitive necesită proiectantului o abordare specială a sistemelor și va fi probabil însoțită și facilitată de disponibilitatea noilor instrumente de dezvoltare software.

PLD-urile sunt deja pe piață, care încorporează un microprocesor care îndeplinește funcțiile de bază (numite nucleu ) în jurul cărora sunt conectate logica programabilă. Această configurație permite proiectantului să se concentreze asupra caracteristicilor specifice de adăugat, fără a vă face griji cu privire la munca pe care procesorul trebuie să o facă în fundal.

PLA

Pictogramă lupă mgx2.svg Același subiect în detaliu: matrice logică programabilă .

Este cel mai simplu dispozitiv logic programabil și primul care a fost produs industrial la sfârșitul anilor 1970. Structura unui PLA se bazează pe faptul că orice funcție logică poate fi descrisă prin sume de produse logice. Un PLA este compus dintr-o matrice de intrare de porți logice ȘI programabile, conectată cu o serie de OR-uri programabile. Arhitectura unui PLA include, de asemenea, linii de feedback de la ieșire la matricea de poartă ȘI, care pot fi utilizate ca intrări suplimentare.
Primele dispozitive PLA care sunt produse implementează circuite pur combinaționale , ulterior s-au dezvoltat PLA-uri secvențiale , care au aceeași arhitectură ca și cele anterioare, dar sunt echipate cu flip-flops pentru sincronizarea semnalului.

PAL

PAL-urile sunt o evoluție a PLA-urilor și diferă în principal prin imposibilitatea de a programa seria de porți SAU. Aceste dispozitive oferă, de asemenea, în funcție de model, câteva soluții arhitecturale mai avansate decât predecesorul său.

FATĂ

Pictogramă lupă mgx2.svg Același subiect în detaliu: Logica matrice generică .

Logica de matrice generică , de obicei prescurtată în GAL, este o evoluție a matricei programabile dezvoltată de Lattice Semiconductors. Aceste logici au aceleași caracteristici ca PAL-urile, cu adăugarea de dispozitive de ieșire programabile numite OLMC.

CPLD

Pictogramă lupă mgx2.svg Același subiect în detaliu: Dispozitiv logic complex programabil .
Un CPLD din seria MAX 7000 de la Altera , care conține 2500 de porturi.

În timp ce LAG-urile sunt disponibile numai în dimensiuni mici, conținând echivalentul a câteva sute de porți logice, CPLD-urile permit circuite logice mai complexe. Aceste dispozitive conțin echivalentul multor PAL-uri conectate între ele prin interconectări programabile încapsulate într-un singur circuit integrat . CPLD-urile se pot ridica la mii, uneori chiar sute de mii de porți logice.

Unele tipuri de CPLD-uri sunt programate folosind programatorul PAL , dar această metodă devine impracticabilă atunci când trebuie să conectați componente cu sute de pini. O metodă mult mai eficientă constă în lipirea dispozitivelor pe un circuit imprimat și apoi trimiterea acestora, prin intermediul unui PC, a unui flux de date care, decodificat corespunzător de circuitele interne ale CPLD-urilor, le oferă configurația necesară pentru a realiza logica dorită funcții.

Fiecare producător are propriul nume care identifică acest mod de programare. De exemplu, Lattice Semiconductor îl numește „programare în sistem” . În acest sens, un proiect de standardizare este în curs de desfășurare de către JTAG ( Joint Test Action Group ).

FPGA

Pictogramă lupă mgx2.svg Același subiect în detaliu: FPGA .

În timp ce PAL-urile evoluau în LAG-uri și CPLD-uri, o nouă familie de dispozitive bazate pe tehnologia gate-array a apărut sub numele de FPGA . Un exemplu este modelul 82s100 produs de Signetics la sfârșitul anilor 1970 . Aceste dispozitive utilizează o matrice de poartă logică foarte asemănătoare cu cea a unei matrice de porți normale, dar programarea se face de către utilizator, mai degrabă decât din fabrică.

Definiția „câmp programabil” (adică „programabil în câmp ”) poate părea confuză, dar termenul „ câmp ” înseamnă pur și simplu în câmp „în afara fabricii” , deci în locul în care este utilizat de către utilizatorul final . FPGA-urile, precum CPLD-urile , sunt programate după lipirea lor pe placa de circuit imprimat. Configurația lor este volatilă și trebuie reîncărcată la fiecare repornire și de fiecare dată când este necesară o programare diferită.

FPGA-urile și CPLD-urile sunt de obicei echivalente din punct de vedere al performanței. Alegerea poate depinde de considerații economice sau de experiența personală a proiectantului.

Elemente conexe

Alte proiecte