+1 500 000 produkti piedāvājumā

7000 pakas sūtītas katrā dienā

+300 000 klienti no 150 valstīm

Quick Buy Iemīļotie
Grozs

Programmējami digitālie FPGA ķēdes

Publicēšanas datums: 18-11-2025 🕒 9 min lasīšanas

FPGA ierīces komerciāli ir pieejamas jau daudzus gadus, tomēr, neskatoties uz daudzām priekšrocībām, tās nevarētu saukt par populārām pielietojumos. Galvenie iemesli ir augstās risinājuma izmaksas un zināšanu trūkums par pielietojumiem. Pirmais no šiem faktoriem negatīvi ietekmē dizaineru vai citu lēmumu pieņēmēju attiecībā uz komponentiem, kamēr pēdējais visbiežāk ietekmē programmētāju vai iebūvēto sistēmu dizaineru, kurš ir prasmīgs objektu orientētajās valodās, bet nesaprot aparatūras apraksta valodu. Šajā tekstā mēs izpētīsim izvēlētas praktiskas FPGA ierīču iezīmes un salīdzināsim tās ar daudz labāk zināmiem un pieņemtiem mikroprocesoriem. Mēs arī norādīsim uz pielietojumiem, kuros FPGA izmantošana ir neaizstājama, un uz tiem, kuros tā kļūst par "pārmērīgu".

FPGA ir nosaukums grupai integrēto shēmu, kas iegūtas no vārdu Field-Programmable Gate Array pirmajiem burtiem. Šīs ierīces var tikt programmētas pēc ražošanas. FPGA programmēšanas process tiek saukts par konfigurāciju, jo tas ietver savienojumu izveidi starp gataviem funkcionāliem blokiem, kas pieejami struktūrā. Atšķirībā no tipiskām digitālajām integrētajām shēmām (vārti, reģistri, flip-flopi, skaitītāji utt.), kas ir ar fiksētu funkcionalitāti, FPGA var tikt programmētas atkārtoti, nodrošinot elastību dažādu pielietojumu izstrādē un testēšanā.

Pērciet FPGA ierīces

FPGA sastāv no programmējamiem loģikas blokiem un programmējamām savienojuma līnijām starp tiem. Šīs ierīces var saturēt ne tikai digitālos blokos, bet arī analogi-digitālos pārveidotājus, digitāli-analogo pārveidotājus, procesoru kodolus (vispārējā mērķa vai DSP), saskarnes blokos, kas ļauj sadarboties ar ārējām ierīcēm, vai pat AI atbalsta vienības, kas savienotas caur Network-on-Chip (NoC), iebūvētu savienojumu tīklu, kas pārsūta datu paketes starp ierīces blokiem un komponentiem. Pateicoties bagātīgajām funkcijām un elastīgajiem savienojumiem, FPGA ierīces var tikt konfigurētas, lai veiktu dažādas funkcijas, piemēram, signālu apstrādi, iebūvēto sistēmu kontroli vai datu apstrādes paātrināšanu.

Viens no vissvarīgākajiem FPGA priekšrocībām ir aprēķinu ātrums. Šīs ierīces darbojas atšķirīgi nekā mikroprocesors, kas iegūst un izpilda instrukcijas secīgi. FPGA apstrādes rezultāts var parādīties "nekavējoties", kavējoties tikai ar nelielu izplatīšanās laiku. Tāpat ir būtiski, ka daudzas operācijas var tikt veiktas paralēli, atšķirībā no mikroprocesora, kas reti atbalsta vienlaicīgu daudzu instrukciju izpildi.

Katrs FPGA ierīce sastāv no trim komponentu grupām:

  1. Katras FPGA pamatelementi ir loģikas bloki. Katrs satur vairākus pamata loģikas funktorus un reģistrus. Loģikas funktori veic loģiskās operācijas, kamēr reģistri uzglabā datus.
  2. Loģikas bloki ir savienoti ar savienojuma autobusu. Tomēr šo terminu nevajadzētu sajaukt, piemēram, ar datu autobusu datoru mātesplatē. Atšķirībā no vara pēdām ar fiksētu topoloģiju, šie ir elastīgi programmējami savienojumi starp blokiem, kas ļauj tos savienot gandrīz patvaļīgi.
  3. Visa konfigurācija tiek uzglabāta neiznīcīgā konfigurācijas atmiņā. Vairumā FPGA šī ir ārējā Flash/EEPROM atmiņa, kuru var atkārtoti dzēst un rakstīt. Dažām FPGA ierīcēm var būt iebūvēta konfigurācijas atmiņa, bet tas ir retāk sastopams. FPGA ielādē konfigurāciju ieslēgšanas vai cietā atiestatīšanas laikā. Konfigurācijas atmiņas pieejamība ļauj viegli izveidot un testēt prototipus un, gatava, funkcionējoša ierīce gadījumā, viegli atjaunināt vai uzlabot funkcionalitāti. Tas ir īpaši vērtīgi aparatūrā, kas ražota nelielās sērijās, kur FPGA izmantošana ir ievērojami izdevīgāka nekā veltītu integrēto shēmu (ASIC) izstrāde un ražošana.

Attēls 1. Vienkāršota blokshēma, kas ilustrē FPGA ierīces struktūru

Atšķirības starp FPGA un CPLD

CPLD ierīces (Complex Programmable Logic Device) bija FPGA ierīču priekšteči un (neskatoties uz mazāku funkcionalitāti) šodien tiek piedāvātas mazāk sarežģītām pielietojumiem. Lielākā daļa lielo piegādātāju piedāvā plašu klāstu, sākot no vienkāršākajām versijām, kas apzīmētas kā PAL, kas satur programmējamos elementus un fiksētās daļas, kas ir predisponētas veikt noteiktu loģisko funkciju. Tas ļauj izmantot vienu integrēto shēmu, nevis vairākus loģikas funktorus, bet nesniedz lielu elastību pielietojumiem.

Pērciet CPLD ierīces

Salīdzinājumā ar PAL, CPLD ierīces ir sarežģītākas. Tās satur vairāk vārtu, ir aprīkotas ar neiznīcīgu atmiņu un RAM, padarot tās piemērotas sarežģītākiem pielietojumiem. Piemēram, Intel® apvienoja daudzus PAL blokos sauktus makrocēlus vienā, apvienotā shēmas iepakojumā, kur visi ieejas ir pieejamas katrai šūnai, un katrs makrocēls var kontrolēt jebkuru izeju. Savienojuma struktūra tiek uzglabāta elektriski programmējamā atmiņā, ko sauc par konfigurācijas atmiņu, tāpat kā FPGA. Tātad, ja CPLD ir makrocēli, programmējams savienojuma autobuss un konfigurācijas atmiņa, kā tās atšķiras no FPGA?

Salīdzinājumā ar FPGA, CPLD satur ievērojami mazāk loģikas elementu un nav LUT masīvu (look up tables). Tām ir integrētāka arhitektūra, ar daudz mazāku loģikas bloku skaitu, un katrā blokā tiek īstenotas sarežģītākas loģiskās funkcijas. Daudzi savienojumi starp blokiem CPLD ir iepriekš definēti ražošanas procesā un nevar tikt mainīti ierīces konfigurācijas laikā. Tās netiek izmantotas tik sarežģītu pielietojumu izveidošanai kā FPGA, kas var saturēt miljonus loģikas funktorus. Lai ilustrētu, FPGA var modelēt procesora kodolu, kamēr CPLD ir noderīgs adreses dekodera īstenošanai, kas sadarbojas ar to.

Attēls 2. Makrocēls MAX7000 sērijas ierīcē (avots: ražotāja dokumentācija)

Vairumā FPGA ierīču konfigurācija tiek uzglabāta ārējā atmiņā, parasti pievienotā caur sērijas saskarni. Konfigurācijas dati tiek kopēti FPGA RAM katru ieslēgšanu vai cietā atiestatīšanas laikā. Tas rada aizkavi ierīces palaišanā, kas ir lielāka sarežģītākām FPGA, kas nav gadījumā ar CPLD, kam konfigurācija ir uzglabāta iebūvētajā EEPROM atmiņā.

FPGA trūkums salīdzinājumā ar CPLD ir augstākas pielietojuma izmaksas.

  • FPGA var prasīt īpašu, efektīvu barošanas sistēmu, kurā ir nepieciešams kontrolēt atsevišķu spriegumu ieslēgšanas secību un reaģēt noteiktā veidā gadījumā, ja notiek kāda kļūme.
  • Konfigurācija, kas uzglabāta ārējā atmiņā, ir pakļauta neautorizētai piekļuvei, kas var būt svarīga pielietojuma drošībai.
  • FPGA pielietojumi, kas prasa ievērojami vairāk ārējo komponentu, ir daudz dārgāki.
  • Augstā FPGA cena praktiski izslēdz sarežģītākas ierīces populāros pielietojumos. CPLD nav tik dārgas un var veiksmīgi tikt izmantotas populārās elektroniskās ierīcēs, aizstājot vairākas vai pat desmitiem loģikas ierīču. Tomēr, neskatoties uz daudzām priekšrocībām, kad loģiskā funkcija ir jāīsteno, daudzi dizaineri joprojām izvēlēsies labāk zināmo mikroprocesoru...

Tabula 1. Salīdzinājums starp izvēlētajiem FPGA un CPLD ierīču parametriem

Funkcija/parametrs CPLD FPGA
Pielietojuma elastība Zema Augsta
Cena Zema Augsta vai ļoti augsta
Pielietojuma drošība Augsta Pakļauta neautorizētai piekļuvei
Darba ātrums Augsts Augsts
Jauda/pielietojuma izmērs Zema Augsta vai ļoti augsta
Aparatūras pielietojums Vienkāršs Sarežģīts vai ļoti sarežģīts
Programmēšana Aparatūras konfigurācijas valodās vai funkcionālajos shēmos

Atšķirības starp FPGA un mikroprocesoru

Funkcionālie bloki, kas iebūvēti FPGA, īpaši A/D pārveidotāji, D/A pārveidotāji, vai saskarnes moduļi ārējām ierīcēm, var atgādināt mikroprocesora kodola apkārtni. FPGA var saturēt iebūvētu RAM un neiznīcīgu Flash atmiņu, bet šī līdzība ir maldinoša.

Mūsdienu, modernās FPGA ierīces ir funkcionāli sarežģītākas nekā modernie, sarežģītie mikroprocesori. Piemēram, funkcionālo bloku savienojums iekš FPGA var izmantot NoC (Network on Chip) tehnoloģiju, kurā integrētās shēmas struktūrā datu paketes tiek pārsūtītas, izmantojot autobusus, ko pārvalda iebūvēti slēdži. Tas ir noderīgi signālu apstrādei un kondicionēšanai, kā arī algoritmiem, kas izmanto mašīnmācīšanos un mākslīgo intelektu.

FPGA darbības ātrums salīdzinājumā ar mikroprocesoru ir patiesi pārsteidzošs. Tas ir tāpēc, ka tipisks mikroprocesora kodols iegūst un izpilda instrukcijas pa vienai. Lai paātrinātu datu apstrādi, tas novirza dažas operācijas uz perifērijas vienībām (piemēram, datu pārsūtīšanai uz un no atmiņas, izmantojot DMA), bet tas nemaina tā darbības ritmu. FPGA, atkarībā no konfigurācijas, FPGA parasti nosūta atbildi nekavējoties pēc datu saņemšanas un turklāt var izpildīt daudzus pavedienus vienlaicīgi. Atcerieties, piemēram, ka signāla novērtēšana nenozīmē vienas parauga ņemšanu un pēc tam novērtēšanu nākamajā solī, bet attiecas uz noteiktu novērtēšanas shēmu, kas pieejama kā savienotu loģikas funktoru tīkls, tādējādi tā var būt pieejama ar precizitāti līdz ierīces izplatīšanās laikam.

Mikroprocesors satur procesora kodolu, RAM, ROM, Flash un perifērijas, piemēram, ieejas/izejas portus, taimerus, A/D un D/A pārveidotājus vienā integrētajā shēmā. Tas ir paredzēts, lai veiktu specifiskas darbības. Lai gan daži moduļi var tikt ieslēgti/izslēgti, lai ietaupītu enerģiju, to funkcionalitāti nevar pārdefinēt. Tā ir fiksēta ražošanas laikā, tostarp bloku darbība un savienojumi. Mikroprocesors ir nedaudz līdzīgs mikrokomputeram, kas uzstādīts uz mazas drukātas shēmas plates vienā iepakojumā. Tās konfigurācijas maiņa prasa dēļa modificēšanu, tostarp shēmas pēdas, komponentu novietojumu un to savienojumus.

FPGA ierīce ir izveidota no programmējamiem loģikas blokiem, kas savienoti ar konfigurējamiem savienojumiem. Funktori var tikt apvienoti dažādos funkcionālos blokos, kas spēj veikt dažādas loģiskās operācijas, un mūsdienu modernās FPGA ierīces izmanto ļoti attīstītas savienojumu tehnoloģijas, piemēram, NoC.

FPGA (un CPLD) programmēšana sastāv no loģisko savienojumu un funkciju definēšanas, izmantojot aparatūras apraksta valodas (HDL), piemēram, VHDL vai Verilog. Konfigurācija, īpaši vienkāršākām ierīcēm, var tikt veikta arī, izmantojot loģisko shēmu, novietojot un savienojot tipiskos loģikas komponentus. FPGA konfigurēšana prasa zināšanas par digitālo shēmu izstrādi. Mikroprocesora programmēšana izmanto strukturālās vai objektu orientētās programmēšanas valodas. Mūsdienās lielākā daļa pielietojumu pāriet no zema līmeņa assemblera uz augsta līmeņa valodām, piemēram, C, C++, Java un citām. Mikroprocesora programmēšana atgādina "lielu" datoru programmēšanu, padarot to vieglāku lielākajai daļai programmētāju, kuri bieži trūkst zināšanu par loģikas bloku darbību un optimizāciju. FPGA programmatūras atmiņa uzglabā konfigurāciju, kamēr mikroprocesora atmiņa uzglabā komandas un parametrus.

Tabula 2. Salīdzinājums starp izvēlētajiem mikroprocesoru un FPGA parametriem

Funkcija/parametrs Mikroprocesors FPGA
Pielietojuma elastība Augsta Augsta
Cena Zema vai vidēja Augsta vai ļoti augsta
Pielietojuma drošība Pakļauta neautorizētai piekļuvei Pakļauta neautorizētai piekļuvei
Darba ātrums Zems salīdzinājumā ar FPGA Augsts
Atmiņas jauda / pielietojuma izmērs No ļoti maza līdz ļoti lielam Augsta vai ļoti augsta
Aparatūras pielietojums Vienkāršs Sarežģīts vai ļoti sarežģīts
Analogās darbības iespēja Nav vai ierobežota
Programmēšana Assemblerī vai augsta līmeņa valodās Aparatūras konfigurācijas valodās

Atšķirības starp FPGA un ASIC

Svarīgākā ASIC ierīču iezīme, kā norāda to nosaukums, ir tā, ka tās ir paredzētas, lai veiktu konkrētu uzdevumu. Tas varētu būt, piemēram, radio signāla saņemšana un dekodēšana, konkrēta displeja modeļa kontrole vai citi. Jāatzīmē, ka ASIC nav obligāti jābūt programmējamām, lai gan ir pieejamas komerciālas, kas satur procesora kodolu, kuram var izstrādāt lietojumprogrammas.

Roberts starp tipisku integrēto shēmu un ASIC ierīci ir ļoti plāns. Tās galvenokārt atšķiras pēc ražošanas apjoma; ASIC tiek ražotas mazākos daudzumos salīdzinājumā ar masveidā ražotām integrētajām shēmām. Daudzi ražotāji piedāvā integrētās shēmas, neizsakot, vai tās ir masveidā ražotas vai ASIC.

ASIC arhitektūru nosaka dizainers un to nevar mainīt pēc ražošanas. Parasti, kad ASIC ir procesora kodols, nav nepieciešama programmatūras izstrāde, tikai jāiestata daži specifiski parametri. Līdzīgi, komunikācijas veids ar apkārtni un datu formāti tiek definēti projektēšanas laikā, un pat ja pāreja starp dažādiem veidiem ir iespējama, izmaiņas nevar tikt ieviestas.

Salīdzinājumā ar FPGA konfigurēšanu, ASIC dizaina process ir sarežģītāks un dārgāks, iespējams, prasa speciālistu zināšanas, kas pārsniedz digitālo shēmu dizainu, bet gala produkts ir optimizētāks konkrētām lietojumprogrammām, veiktspējai un energoefektivitātei.

ASIC tiek izmantotas pielietojumos, kas prasa augstu veiktspēju ar zemu enerģijas patēriņu un miniaturizētām dimensijām. Specializācija ļauj tām piedāvāt izcilus praktiskos parametrus. Turklāt ASIC parasti ir gatavas lietošanai tūlīt pēc lodēšanas vai ievietošanas ligzdā un nav nepieciešams ielādēt konfigurāciju no ārējās atmiņas. Tām var būt arī jaukta funkcionalitāte vai tās var būt tīri analoģiskas. Tas nav iespējams ar FPGA, kas nodrošina ļoti augstu veiktspēju, paralēli apstrādājot digitālos datus, pēc konvertēšanas no analoga uz digitālo un otrādi.

Gatavas ASIC var būt daudzkārt lētākas nekā FPGA. Tās ir daudz dārgākas un laikietilpīgākas izstrādāt, bet šie izdevumi tiek amortizēti parasti lielos apjomos. Tas notiek uz pārkonfigurēšanas iespēju trūkuma rēķina, bet tas ne vienmēr ir nepieciešams. Līdzīgi kā mikroprocesoriem, FPGA var tikt izmantotas, lai prototipētu ASIC, bet ASIC nevar modelēt FPGA darbību. Protams, šeit mēs runājam par modelēšanu, kas ļauj ierakstīt noderīgu konfigurāciju FPGA, nevis tikai sasniegt līdzīgu funkcionalitāti.

Tabula 3. Salīdzinājums starp izvēlētajiem ASIC un FPGA parametriem

Funkcija/parametrs ASIC FPGA
Pielietojuma elastība Ļoti zema Augsta
Cena Zema vai vidēja Augsta vai ļoti augsta
Pielietojuma drošība Augsta Pakļauta neautorizētai piekļuvei
Darba ātrums Augsts Augsts
Jauda/pielietojuma izmērs Zema vai nav Augsta vai ļoti augsta
Aparatūras pielietojums Vienkāršs Sarežģīts vai ļoti sarežģīts
Analogās darbības iespēja Atkarīgs no dizaina Nav vai ierobežota
Programmēšana Ierobežota spēja vai nav nepieciešama Aparatūras konfigurācijas valodās

Bibliogrāfija:

  • Control Engineering Poland – FPGA automatizācijā - www.controlengineering.pl/uklady-fpga-w-automatyce-nowe-mozliwosci-i-zastosowania
  • Lattice Semiconductor – FPGA Rūpniecībā 4.0 - www.latticesemi.com/en/Blog/2022/12/20/23/00/2022-How-FPGAs-Can-Make-Industry-4-Work
  • Wikipedia – Ceturtā industriālā revolūcija - www.pl.wikipedia.org/wiki/Czwarta_rewolucja_przemysłowa
  • Iebūvēto sistēmu projektēšana FPGA ierīcēs - www.helion.pl/pobierz-fragment/projektowanie-systemow-wbudowanych-w-ukladach-fpga-valery-salauyou-adam-klimowicz,e_321i/pdf
  • Atmiņas spēks – Elektronika Praktyczna - www.ep.com.pl/files//2012.pdf
  • Wikipedia – Lauka programmējamā loģikas matrica (FPGA) - www.pl.wikipedia.org/wiki/Bezpośrednio_programowalna_macierz_bramek
  • FPGA-Based System Design – Wayne Wolf - www.eeeforum.weebly.com/uploads/1/0/2/5/10254481/fpga1.pdf
  • „Real-Time Image Processing on FPGA“ – SpringerLink - www.link.springer.com/chapter/10.1007/978-3-642-24106-2_18

Transfer Multisort Elektronik (TME) ir viens no lielākajiem pasaules elektronisko komponentu, elektrotehnisko detaļu, darbnīcu aprīkojuma un rūpnieciskās automatizācijas izplatītājiem. Katalogā ir vairāk nekā 1 500 000 produktu no 1 300 vadošajiem ražotājiem. TME modernie loģistikas centri Lodzā un Rzgovā (Polija), kuru kopējā platība pārsniedz 40 000 m², katru dienu nosūta gandrīz 6 000 sūtījumu klientiem vairāk nekā 150 valstīs.

TME arī iegulda jauno inženieru un elektronikas entuziastu zināšanu un prasmju attīstībā, izmantojot projektu TME Education, un atbalsta tehnoloģiju kopienu, organizējot pasākumu sēriju TechMasterEvent, kas veicina inovācijas un pieredzes apmaiņu.

rightColumnPicture rightColumnPicture

LASĪT ARĪ