+1 500 000 produse în ofertă
7000 colete expediate zilnic
+300 000 clienţi din 150 de ţări
Data publicării: 18-11-2025 🕒 9 min de citit
Dispozitivele FPGA sunt disponibile comercial de mulți ani, însă, în ciuda multor avantaje, nu se poate spune că sunt populare în aplicații. Principalele motive sunt costul ridicat al soluției și lipsa de cunoștințe despre aplicații. Prima dintre aceste caracteristici afectează negativ designerul sau alt decident în ceea ce privește componentele, în timp ce cea din urmă afectează cel mai adesea programatorul sau designerul de sisteme încorporate, care este proficient în limbaje orientate pe obiect, dar nu înțelege limbajul de descriere a hardware-ului. În acest text, vom examina caracteristicile practice selectate ale dispozitivelor FPGA și le vom compara cu microcontrolerele mult mai bine cunoscute și acceptate. De asemenea, vom sublinia aplicațiile în care utilizarea FPGA este indispensabilă și cele în care devine „excesivă”.
FPGA este numele unui grup de circuite integrate derivate din primele litere ale cuvintelor Field-Programmable Gate Array. Aceste dispozitive pot fi programate după producție. Procesul de programare al FPGA se numește configurare, deoarece implică realizarea de conexiuni între blocurile funcționale gata făcute disponibile în interiorul structurii. Spre deosebire de circuitele integrate digitale tipice (porți, registre, flip-flop-uri, contoare etc.) care au funcționalitate fixă, FPGA-urile pot fi programate repetat, oferind flexibilitate în proiectarea și testarea diferitelor aplicații.
FPGA-urile constau din blocuri logice programabile și interconexiuni programabile între ele. Aceste dispozitive pot conține nu doar blocuri digitale, ci și convertoare analogice-digitale, convertoare digitale-analogice, nuclee de procesor (de uz general sau DSP), blocuri de interfață care permit cooperarea cu dispozitive externe sau chiar unități de suport AI conectate prin Network-on-Chip (NoC), o rețea de interconexiune încorporată care transmite pachete de date între blocuri și componentele dispozitivului. Datorită caracteristicilor bogate și conexiunilor flexibile, dispozitivele FPGA pot fi configurate pentru a efectua diverse funcții, cum ar fi procesarea semnalelor, controlul sistemelor încorporate sau accelerarea procesării datelor.
Unul dintre cele mai importante avantaje ale FPGA este viteza de calcul. Aceste dispozitive funcționează diferit față de un microprocesor, care preia și execută instrucțiuni secvențial. În FPGA, rezultatul procesării poate apărea „imediat”, întârziat doar de un timp mic de propagare. De asemenea, este semnificativ că multe operații pot fi efectuate în paralel, spre deosebire de un microcontroler, care rareori suportă execuția simultană a multor instrucțiuni.
Fiecare dispozitiv FPGA constă din trei grupuri de componente:
Figura 1. Diagrama bloc simplificată care ilustrează structura unui dispozitiv FPGA
Dispozitivele CPLD (Complex Programmable Logic Device) au fost precursorii dispozitivelor FPGA și (în ciuda funcționalității mai reduse) sunt oferite astăzi pentru aplicații mai puțin complexe. Cei mai mari furnizori oferă o gamă largă, începând de la cele mai simple versiuni desemnate ca PAL, care conțin elemente programabile și părți fixe predispunse să efectueze o anumită funcție logică. Acest lucru permite utilizarea unui singur circuit integrat în loc de mai multe funcții logice, dar nu oferă o mare flexibilitate pentru aplicații.
Comparativ cu PAL, dispozitivele CPLD sunt mai complexe. Acestea conțin mai multe porți, sunt echipate cu memorie non-volatilă și RAM, făcându-le potrivite pentru aplicații mai complexe. De exemplu, Intel® a plasat multe blocuri PAL numite macrocells într-un singur pachet de circuit unificat, unde toate intrările sunt disponibile pentru fiecare celulă, iar fiecare macrocelulă poate controla orice ieșire. Structura de conexiune este stocată în memorie programabilă electric numită memorie de configurare, la fel ca în FPGA. Așadar, dacă CPLD-urile au macrocells, un bus de conexiune programabil și memorie de configurare, cum se deosebesc de FPGA-uri?
Comparativ cu FPGA-urile, CPLD-urile conțin semnificativ mai puține elemente logice și nu au matrice LUT (look up tables). Ele au o arhitectură mai integrată, cu un număr mult mai mic de blocuri logice și implementează funcții logice mai complexe în fiecare bloc. Multe conexiuni între blocuri în CPLD sunt predefinite în procesul de fabricație și nu pot fi schimbate în timpul configurării dispozitivului. Ele nu sunt utilizate pentru a crea aplicații la fel de complexe ca FPGA-urile, care pot conține milioane de funcții logice. Pentru a ilustra, un FPGA poate modela un nucleu de procesor, în timp ce un CPLD este util pentru implementarea unui decodor de adresă care colaborează cu acesta.
Figura 2. Macrocelula dispozitivului din seria MAX7000 (sursa: documentația producătorului)
În majoritatea dispozitivelor FPGA, configurația este stocată în memorie externă, de obicei atașată printr-o interfață serială. Datele de configurare sunt copiate în RAM-ul FPGA-ului la fiecare pornire sau resetare hard. Acest lucru creează o întârziere la pornirea dispozitivului, mai mare pentru FPGA-urile mai complexe, ceea ce nu este cazul CPLD-urilor care au configurația stocată în memoria EEPROM.
Un dezavantaj al FPGA-ului comparativ cu CPLD este costul mai ridicat al aplicației.
Tabelul 1. Compararea parametrilor selectați ai dispozitivelor FPGA și CPLD
| Caracteristică/parametru | CPLD | FPGA |
|---|---|---|
| Flexibilitatea aplicației | Scăzut | Ridicat |
| Preț | Scăzut | Ridicat sau foarte ridicat |
| Securitatea aplicației | Ridicată | Susceptibilă la acces neautorizat |
| Viteza de operare | Ridicată | Ridicată |
| Capacitate/mărimea aplicației | Scăzut | Ridicat sau foarte ridicat |
| Aplicație hardware | Simplă | Complexă sau foarte complexă |
| Programare | În limbaje de configurare hardware sau prin scheme funcționale | |
Blocurile funcționale integrate în FPGA, în special convertoare A/D, convertoare D/A sau module de interfață pentru dispozitive externe, pot semăna cu mediul unui nucleu de microcontroler. Un FPGA poate avea RAM încorporată și memorie non-volatilă Flash, dar această asemănare este înșelătoare.
Dispozitivele FPGA moderne, avansate sunt funcțional mai complexe decât microcontrolerele avansate și complexe. De exemplu, conectarea blocurilor funcționale în interiorul unui FPGA poate utiliza tehnologia NoC (Network on Chip), unde, în cadrul structurii circuitului integrat, pachetele de date sunt transmise folosind bus-uri gestionate de comutatoare încorporate. Acest lucru este util pentru procesarea și condiționarea semnalelor și pentru algoritmi care utilizează învățarea automată și inteligența artificială.
Viteza de operare a FPGA-ului comparativ cu un microcontroler este cu adevărat uluitoare. Acest lucru se datorează faptului că un nucleu tipic de microcontroler preia și execută instrucțiuni una câte una. Pentru a accelera procesarea datelor, acesta descarcă unele operații către unități periferice (de exemplu, transmiterea datelor către și dinspre memorie prin DMA), dar acest lucru nu schimbă ritmul său operațional. În FPGA-uri, în funcție de configurație, FPGA-ul transmite de obicei răspunsul imediat după primirea datelor și, în plus, poate executa multe fire simultan. Amintiți-vă, de exemplu, că evaluarea unui semnal nu implică preluarea unei singure probe și apoi evaluarea acesteia în pasul următor, ci se referă la un anumit schemă de evaluare disponibilă ca o rețea de funcții logice conectate, astfel încât să poată fi disponibilă cu o precizie de până la timpul de propagare al dispozitivului.
Un microcontroler conține un nucleu de procesor, RAM, ROM, Flash și periferice, cum ar fi porturi de intrare/ieșire, temporizatoare, convertoare A/D și D/A pe un singur circuit integrat. Este proiectat pentru a efectua sarcini specifice. Deși unele module pot fi activate/dezactivate pentru a economisi energie, funcționalitatea lor nu poate fi redefinită. Este fixată în timpul producției, inclusiv funcționarea și conectarea blocurilor. Un microcontroler este oarecum asemănător cu un microcomputer montat pe o mică placă de circuit imprimat într-un singur pachet. Schimbarea configurației sale necesită modificarea plăcii, inclusiv traseele circuitului, amplasarea componentelor și interconexiunile acestora.
Un dispozitiv FPGA este construit din blocuri logice programabile conectate prin interconexiuni configurabile. Funcțiile pot fi combinate în diverse blocuri funcționale capabile să efectueze diferite operații logice, iar dispozitivele FPGA moderne avansate angajează tehnologii de conectare foarte avansate, cum ar fi NoC.
Programarea FPGA (și CPLD) constă în definirea conexiunilor logice și a funcțiilor folosind limbaje de descriere hardware (HDL) precum VHDL sau Verilog. Configurarea, în special pentru dispozitivele mai simple, poate fi realizată și folosind o schemă logică, plasând și conectând componente logice tipice. Configurarea FPGA necesită cunoștințe de proiectare a circuitelor digitale. Programarea unui microcontroler folosește limbaje de programare structurale sau orientate pe obiect. Astăzi, majoritatea aplicațiilor se îndepărtează de limbajul de asamblare de nivel scăzut spre limbaje de nivel înalt precum C, C++, Java și altele. Programarea microcontrolerelor seamănă cu programarea „computerelor mari”, facilitându-le majorității programatorilor, care adesea nu au cunoștințe despre funcționarea și optimizarea blocurilor logice. Memoria programului FPGA stochează configurația, în timp ce memoria microcontrolerului stochează comenzi și parametrii.
Tabelul 2. Compararea parametrilor selectați ai microcontrolerelor și FPGA
| Caracteristică/parametru | Microcontroler | FPGA |
|---|---|---|
| Flexibilitatea aplicației | Ridicată | Ridicată |
| Preț | Scăzut sau mediu | Ridicat sau foarte ridicat |
| Securitatea aplicației | Susceptibilă la acces neautorizat | Susceptibilă la acces neautorizat |
| Viteza de operare | Scăzută comparativ cu FPGA | Ridicată |
| Capacitatea memoriei / mărimea aplicației | De la foarte mică la foarte mare | Ridicat sau foarte ridicat |
| Aplicație hardware | Simplă | Complexă sau foarte complexă |
| Posibilitatea de operare analogică | Niciuna sau limitată | |
| Programare | În asamblare sau limbaje de nivel înalt | În limbaje de configurare hardware |
Cea mai importantă caracteristică a dispozitivelor ASIC, așa cum indică numele lor, este că sunt proiectate pentru a efectua o sarcină specifică. Acest lucru ar putea fi, de exemplu, primirea și decodarea unui semnal radio, controlul unui anumit model de afișaj sau altele. Rețineți că ASIC-ul nu trebuie neapărat să fie programabil, deși există unele disponibile comercial care conțin un nucleu de procesor pentru care pot fi create aplicații.
Limita dintre un circuit integrat tipic și un dispozitiv ASIC este foarte subțire. Ele sunt separate în principal prin volumul de producție; ASIC-urile sunt produse în numere mai mici comparativ cu circuitele integrate produse în masă. Mulți producători oferă circuite integrate fără a indica dacă sunt produse în masă sau ASIC-uri.
Arhitectura unui ASIC este definită de designer și nu poate fi schimbată după fabricație. De obicei, atunci când ASIC-urile au un nucleu de procesor, nu este necesară dezvoltarea unui program, ci doar setarea unor parametrii specifici. În mod similar, tipul de comunicare cu mediul și formatele de date sunt definite în timpul proiectării, iar chiar dacă este posibilă comutarea între diferite tipuri, modificările nu pot fi introduse.
Comparativ cu configurarea FPGA, procesul de proiectare ASIC este mai complex și costisitor, necesitând posibil cunoștințe specializate dincolo de proiectarea circuitelor digitale, dar produsul final este mai optimizat pentru aplicații specifice, performanță și eficiență energetică.
ASIC-urile sunt utilizate în aplicații care necesită performanțe ridicate cu un consum de energie scăzut și dimensiuni miniaturale. Specializarea le permite să ofere parametrii practici excelenți. În plus, ASIC-urile sunt de obicei gata de utilizare imediat după lipire sau plasare într-un soclu și nu trebuie să încarce configurația din memorie externă. Ele pot avea, de asemenea, funcționalitate mixtă sau să fie pur analogice. Acest lucru nu este posibil cu FPGA-urile, care oferă performanțe foarte ridicate prin procesarea paralelă a datelor digitale, după conversia din analogic în digital și invers.
ASIC-urile gata de utilizare pot fi de multe ori mai ieftine decât FPGA-urile. Ele sunt mult mai costisitoare și consumatoare de timp de proiectare, dar aceste costuri sunt amortizate pe volume tipic mari. Acest lucru vine cu prețul lipsei capacității de reconfigurare, dar aceasta nu este întotdeauna necesară. Similar microcontrolerelor, FPGA-urile pot fi utilizate pentru a prototipa ASIC-uri, dar ASIC-urile nu pot modela funcționarea FPGA-urilor. Desigur, aici ne referim la modelarea care permite înregistrarea unei configurații utile pentru FPGA, nu doar la atingerea unei funcționalități similare.
Tabelul 3. Compararea parametrilor selectați ai ASIC și FPGA
| Caracteristică/parametru | ASIC | FPGA |
|---|---|---|
| Flexibilitatea aplicației | Foarte scăzut | Ridicat |
| Preț | Scăzut sau mediu | Ridicat sau foarte ridicat |
| Securitatea aplicației | Ridicată | Susceptibilă la acces neautorizat |
| Viteza de operare | Ridicată | Ridicată |
| Capacitatea/mărimea aplicației | Scăzută sau inexistentă | Ridicat sau foarte ridicat |
| Aplicație hardware | Simplă | Complexă sau foarte complexă |
| Posibilitatea de operare analogică | Depinde de proiectare | Niciuna sau limitată |
| Programare | Capacitate limitată sau nu este necesară | În limbaje de configurare hardware |
Bibliografie:
Transfer Multisort Elektronik (TME) este unul dintre cei mai mari distribuitori globali de componente electronice, piese electrotehnice, echipamente de atelier și automatizare industrială. Catalogul include peste 1.500.000 de produse de la 1.300 de producători de top. Centrele logistice moderne ale TME din Łódź și Rzgów (Polonia), cu o suprafață totală de peste 40.000 m², trimit zilnic aproape 6.000 de pachete către clienți din peste 150 de țări.
TME investește, de asemenea, în dezvoltarea cunoștințelor și abilităților tinerilor ingineri și pasionați de electronică prin proiectul TME Education și sprijină comunitatea tehnologică organizând seria de evenimente TechMasterEvent, promovând inovația și schimbul de experiență.