Circuit logic programabil

Circuit logic programabil Imagine în Infobox. Xilinx FPGA (model Spartan XC3S400) cu 400.000 de uși.
Tip Circuit logic integrat
Descoperire
Descoperitor Xilinx

Un circuit logic programabil sau o rețea logică programabilă este un circuit logic integrat care poate fi reprogramat după fabricare.

Este alcătuit din multe celule logice elementare și flip-flop-uri logice conectabile liber (tocmai reconfigurarea sau programarea componentei definește conexiunile între porțile logice).

Primele brevete pentru astfel de componente datează din anii '80 până în anii '90, însă la începutul anilor '90 au devenit răspândite .

Denumire

Rețineți că ar fi impropriu să vorbiți despre programare în sensul software-ului (spre deosebire de un microprocesor, nu execută nicio linie de cod). Aici, ar fi mai bine să vorbim despre „reconfigurare” mai degrabă decât despre reprogramare (modificăm conexiunile sau comportamentul componentei, conectăm porțile logice între ele etc. ). Verbul a programa este totuși cel mai frecvent, dar în sensul personalizării. Acestea sunt într-adevăr rețele logice reconfigurabile și modificabile .

Acest tip de componentă electronică este denumit în mod obișnuit prin diferite acronime engleze, inclusiv:

Deși fundamental sinonimi, acești termeni nu sunt, în general, interschimbabili în vocabularul comercial al producătorilor: FPGA desemnează mai degrabă componente cu tehnologie RAM , componente EPLD cu tehnologie FLASH, componente PAL cu tehnologie de siguranță (a se vedea § procese tehnologice ).

Arhitectura hardware

Rețelele logice programabile sunt circuite formate din numeroase celule logice elementare care pot fi asamblate liber.

Acestea sunt conectate permanent sau reversibil prin programare , pentru a realiza funcțiile digitale dorite. Avantajul este că același cip poate fi utilizat în multe sisteme electronice diferite.

Unele modele pot include, de asemenea , memorie de uz general, blocuri  „ DSP ”  cablate sau bucle blocate în fază pentru generarea ceasului .

FPGA

Majoritatea FPGA-urilor moderne moderne se bazează pe celule SRAM atât pentru rutare de circuite cât și pentru blocurile logice care trebuie interconectate.

Un bloc logic este format în general dintr-un tabel de căutare ( LUT sau tabel de căutare ) și un flip-flop ( flip-flop în engleză). LUT este utilizat pentru a implementa ecuații logice având în general 4 până la 6 intrări și o ieșire. Cu toate acestea, poate fi considerat ca o memorie mică, un multiplexor sau un registru de schimbare . Registrul este utilizat pentru a stoca o stare (mașină secvențială) sau pentru a sincroniza un semnal ( conductă ).

Blocurile logice, prezente în număr mare pe cip (de la câteva mii la câteva milioane în 2007) sunt conectate între ele printr-o matrice de rutare configurabilă. Acest lucru permite reconfigurarea componentei după bunul plac, dar ocupă un loc important pe siliciu și justifică costul ridicat al componentelor FPGA. Topologie se numește „Manhattan“, cu referire la străzi în unghi drept acest cartier din New York .

Densitățile actuale nu mai permit rutare manuală, deci este un instrument automat de plasare-rutare care se potrivește cu diagrama logică dorită de proiectant și cu resursele hardware ale cipului. Deoarece timpii de propagare depind de lungimea legăturilor dintre celulele logice și de faptul că algoritmii de optimizare a routerelor de plasare nu sunt deterministe, performanțele (frecvența maximă) obținute într-un FPGA sunt variabile de la un design la ultimul. . Utilizarea resurselor este, pe de altă parte, foarte bună și sunt posibile rate de ocupare a blocurilor logice mai mari de 90%.

Deoarece configurația (rutare și LUT) este realizată de puncte de memorie volatile, este necesar să salvați designul FPGA într-o memorie externă non-volatilă, în general o memorie Flash serială, compatibilă   „ JTAG ”. Cu toate acestea, unii producători se disting prin utilizarea celulelor EEPROM pentru configurare, eliminând necesitatea memoriei externe sau printr-o configurație anti-siguranță (programarea cu o tensiune înaltă face un „snap” dielectric, creând un contact). Cu toate acestea, această ultimă tehnologie nu poate fi reconfigurată.

Unele caracteristici specifice disponibile pentru anumite componente:

CPLD

PAL-urile, GAL-urile, CPLD-urile și EPLD-urile mai vechi folosesc „macrocelule” logice, alcătuite dintr-o matrice combinatorie de porți AND și OR pentru a implementa ecuații logice. Flip - flops sunt disponibile numai în blocuri I / O. O componentă conține de la câteva zeci până la câteva sute de macrocelule.

Deoarece rutare este fixă, timpii de propagare sunt limitați și permit o frecvență mare de funcționare independentă de proiectare. Pe de altă parte, utilizarea resurselor nu este optimă (orice termen care nu este utilizat într-o ecuație logică este echivalent cu porțile pierdute), cu rate de utilizare de aproximativ 25%.

CPLD-urile se disting de alte PLD-uri deoarece conțin echivalentul mai multor componente PLD, legate printr-o matrice de interconectare.

Aplicații

FPGA-urile sunt utilizate în diverse aplicații care necesită electronică digitală (telecomunicații, aeronautică, transport etc.). Ele sunt, de asemenea, utilizate pentru prototiparea ASIC .

FPGA-urile sunt în general mai lente, mai scumpe pe unitate și consumă mai multă energie decât echivalentul lor ASIC ( Application Specific Integrated Circuit ). Cu toate acestea, acestea au mai multe avantaje:

Uneori este posibil să transformați direct un FPGA într-o versiune ASIC mai rapidă, mai ieftină și mai puțin consumatoare (deoarece matrițele de rutare sunt înlocuite de un strat de metalizare fix).

Mai multe FPGA moderne au posibilitatea de a fi reconfigurate (se vorbește despre configurație când vine vorba de programarea hardware-ului) parțial din mers. Acest lucru face posibilă obținerea de sisteme reconfigurabile - de exemplu, o unitate centrală de procesare ale cărei instrucțiuni se schimbă dinamic în funcție de necesități.

FPGA-urile moderne sunt suficient de mari și conțin suficientă memorie pentru a fi configurate pentru a găzdui un nucleu de procesor sau un DSP , pentru a rula software-ul. Vorbim în acest caz de procesor softcore , spre deosebire de microprocesoarele hardcore îngropate în siliciu. Astăzi, producătorii FPGA chiar integrează unul sau mai multe nuclee de procesor   „ hardcore ” pe o singură componentă pentru a conserva resursele logice configurabile ale componentei. Acest lucru nu exclude utilizarea procesorului softcore care are multe avantaje. Prin urmare, tindem spre sisteme pe un cip , ca și pentru microcontrolerul de acum câteva decenii, în plus față de logica configurabilă în funcție de utilizator. Memoria celor mai recente FPGA este încă insuficientă pentru a rula un software oarecum complex la bord și trebuie folosite memorii externe (ROM, RAM). Cu toate acestea, Legea lui Moore nu este încă în vigoare și acestea ar trebui integrate în câțiva ani și vor fi suficiente pentru o mare parte a aplicațiilor de la bord.

Proiectare diagramă logică

Pentru a putea finaliza un FPGA, este necesar să utilizați un limbaj de descriere hardware sau un instrument de introducere grafică. După compilarea acestei descrieri, obținem un fișier de configurare pentru FPGA ales. VHDL și Verilog sunt cele mai populare două limbi de descriere.

Procese tehnologice

Procesele tehnologice de bază pentru componentele programabile sunt următoarele:

În cazul tehnologiilor de memorie (SRAM, EEPROM, bliț), memoria se află lângă circuitul logic propriu-zis și fiecare dintre biții săi controlează un comutator ( tranzistor ) pentru configurarea rețelei logice. În cazul tehnologiilor (anti) fuzibile, acestea sunt direct în rețeaua logică și au atât funcția de memorie nevolatilă, cât și de comutator.

FPGA-urile de ultimă generație sunt la vârful tehnologiei: salturi tehnologice, precum finețea gravurii , se fac adesea pe aceste componente înainte de a trece la microprocesoare . Într-adevăr, structura repetitivă a matricei logice este propice reglării mașinilor de gravat microelectronice. Astfel, primele componente gravate cu o finețe de 90  nm au fost FPGA-urile Spartan3 de la Xilinx , în 2003.

Producătorii

Printre producătorii de astfel de circuite programabile se numără Abound Logic , Achronix , Anlogic , Atmel , Cypress , Gowin , Intel PSG (ex. Altera ), Lattice Semiconductor , Microsemi (ex. Actel ), Nallatech , QuickLogic , SiliconBlue , Efinix, Tabula Inc. , Tier Logic și Xilinx .

Vezi și tu

Note și referințe

  1. Fișa tehnică a dispozitivelor FPGA Xilinx, Spartan-3 .
  2. (în) Anthony Cataldo , „  Linia low-end Xilinx trece la procesul de 90 nm  ” pe eetimes.com  (în) ,14 aprilie 2003(accesat la 25 septembrie 2019 )

Articole similare

linkuri externe