Matrice de poartă programabilă pe teren

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
FPGA conținând 20.000 de porți logice

Un „Field Programmable Gate Array” (de obicei prescurtat în FPGA ), în electronică digitală , este un dispozitiv logic programabil sau, în general, un dispozitiv hardware electronic format dintr-un circuit integrat ale cărui funcții de procesare logică sunt special programabile și modificabile prin limbaje de descriere hardware adecvate.

fundal

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

Componentele FPGA au fost introduse în a doua jumătate a anilor 1980 ca a treia generație de dispozitive logice programabile (PLD), dezvoltată în laboratoarele Harris Semiconductor . Dezvoltări ulterioare au fost făcute cu Memorie Read Only , memorii CMOS și tehnologii antifuzibile care au fost toate implementate în astfel de dispozitive.

Începând cu a doua jumătate a anilor 1980 , după primele modele produse de Altera și realizarea XC2064 de către Xilinx și implementarea SRAM pe scară largă în anii 1990 , industria sectorului a avut o expansiune puternică, datorită și progresele tehnologice continue din sectorul semiconductorilor , atingând o cotă de piață de aproape 2 miliarde de dolari în 2005.

Caracteristici

Tipologie

Există mai multe tipuri de FPGA, care includ atât dispozitive care pot fi programate o dată, cât și dispozitive care pot fi reprogramate de mai multe ori. Primele, numite OTP ( One Time Programmable ), constau din componente a căror stare de funcționare se modifică permanent, permițând menținerea configurației atunci când dispozitivul este oprit. A doua categorie include dispozitive bazate pe tehnologia SRAM ( Static Random Access Memory ), care trebuie reprogramate de fiecare dată când sunt pornite, având o memorie de configurare volatilă.

Circuitele FPGA sunt elemente care au caracteristici intermediare în ceea ce privește dispozitivele ASIC ( Application Specific Integrated Circuit ) pe de o parte și cele cu arhitectură PAL ( Programmable Array Logic ) pe de altă parte. Utilizarea componentelor FPGA are unele avantaje față de ASIC-uri: ele sunt de fapt dispozitive standard a căror funcționalitate care urmează să fie implementată nu este stabilită de producător, care, prin urmare, poate produce pe scară largă la un preț scăzut. Natura lor generică le face adecvate pentru un număr mare de aplicații în sectoarele consumator , comunicații, automobile etc. Acestea sunt programate direct de către utilizatorul final, permițând reducerea timpului de proiectare, verificarea prin simulări și testarea pe teren a aplicației. Marele avantaj față de ASIC-uri este că vă permit să efectuați orice modificări sau corectarea erorilor prin simpla reprogramare a dispozitivului în orice moment. Din acest motiv, acestea sunt utilizate pe scară largă în fazele de prototipare , deoarece orice erori pot fi rezolvate pur și simplu prin reconfigurarea dispozitivului. Mediul de proiectare este, de asemenea, mai ușor de utilizat și relativ ușor de învățat. Pe de altă parte, pentru aplicații pe un număr mare, acestea sunt neeconomice, deoarece prețul unitar al dispozitivului este mai mare decât cel al ASIC-urilor (care, cu toate acestea, au adesea costuri de proiectare mai mari).

Costul acestor dispozitive scade acum rapid: acest lucru le face din ce în ce mai mult o alternativă validă la tehnologia standard a celulelor . De obicei, acestea sunt programate cu limbaje precum Verilog sau VHDL , dar nu trebuie să uităm modul „ intrare schematică ”, care permite o abordare simplă și rapidă a acestei tehnologii, având în același timp același potențial. Mulți producători (de exemplu, Xilinx și Altera ) oferă sisteme de dezvoltare gratuite care susțin aproape întreaga gamă de produse.

Datorită versatilității acestor procesoare, câmpurile de utilizare se extind în diferite sectoare pentru care aceste carduri nu au fost inițial concepute: de exemplu pentru activitatea de extragere a criptomonedelor, un câmp combătut inițial doar de procesoare ASIC și GPU-uri.

Principalele tehnologii

  • SRAM - Tehnologie bazată pe tehnologia de memorie statică CMOS , în uz. SRAM-FPGA sunt programabile și reprogramabile de multe ori și necesită configurarea utilizării dispozitivelor externe.
  • Antifuzibil - Circuite programabile o singură dată ; CMOS.
  • PROM - Circuite programabile o singură dată; învechit.
  • EPROM - Dispozitivele bazate pe tehnologia EPROM pot fi reprogramate prin ștergerea datelor configurate anterior cu radiații ultraviolete . CMOS; învechit.
  • EEPROM - Spre deosebire de circuitele anterioare, ștergerea datelor are loc electronic.
  • Flash - Tehnologia EPROM bazată pe memoria flash, acestea sunt dispozitive care pot fi reprogramate. De obicei, o celulă de memorie flash este mai mică decât o celulă EEPROM echivalentă și, de asemenea, este mai puțin costisitoare de fabricat. CMOS.
  • Siguranță - Circuite programabile o singură dată; bipolar; învechit.

Structura

Descriere simplificată a unei celule logice , care prezintă două LUT -uri cu 3 intrări, o sumă completă (FA) și un flip-flop de tip D.
Matricea comutatorului constă din tranzistori de trecere programabili care vizează direcționarea semnalelor în cadrul organizării matricei care constituie FPGA

Structura unui FPGA este alcătuită în general dintr-o matrice de blocuri logice configurabile, numite CLB ( Configurable Logic Blocks ), conectate între ele prin interconectări programabile. La marginile acestei matrice există blocurile de intrare / ieșire, numite IOB ( Input Output Block ). CLB-urile îndeplinesc funcțiile logice, setul de interconectări le pune în comunicare, în timp ce IOB-urile se ocupă de interfațarea circuitului cu lumea exterioară. În cadrul acestei matrice există și alte tipuri de resurse, cum ar fi DCM ( Digital Clock Manager ), care generează semnalul de ceas , rețeaua care transportă semnalul de ceas de la flip-flops la CLB și alte resurse de calcul, cum ar fi ALU ( Aritmetic Logic Unit ) și resurse de memorie distribuite. Fiecare dintre aceste elemente constitutive are un model de operare specific, care are o importanță considerabilă în înțelegerea funcționării corecte a dispozitivului.

Blocuri logice configurabile

Blocurile CLB sunt de obicei compuse din două sau patru celule logice , care efectuează operații booleene . Fiecare celulă logică este compusă de obicei din unul sau mai multe LUT-uri programabile ( tabele de căutare ). LUT-urile sunt utilizate pentru a implementa funcții booleene generalizate și sunt de obicei însoțite de un registru. Setul acestor elemente se numește celulă logică și reprezintă unul dintre cei mai importanți parametri în evaluarea potențialului unui FPGA.

CLB-urile pot fi conectate între ele, permițând astfel crearea de funcții booleene complexe. LUT-urile sunt compuse dintr-o memorie SRAM pe 16 biți și un multiplexor cu 4 intrări: odată configurate pot genera orice funcție logică cu patru intrări fiecare. Există, de asemenea, interconectările referitoare la setarea / resetarea și logica de activare a cipului, la semnalele de ceas și la semnalele provenite de la celelalte felii ale dispozitivului. Alegerea de a utiliza LUT-uri cu doar patru intrări constă în faptul că complexitatea unui LUT crește exponențial pe măsură ce numărul de intrări crește și, prin urmare, nu este foarte ușor de gestionat.

Gruparea unor LUT-uri într-un CLB și conectarea lor cu o rețea locală de interconectări permite de fapt o viteză mai mare, datorită faptului că acest tip de interconectare este mai rapid decât cel general între blocuri logice distincte. CLB este, de asemenea, dimensionat pentru a optimiza numărul de conexiuni locale și globale în funcție de zona ocupată: CLB-urile prea mari înseamnă că zona necesară pentru interconectările locale depășește cea salvată datorită grupării LUT-urilor conținute în acestea. În cele din urmă, de-a lungul perimetrului blocurilor logice există pinii de intrare și ieșire, conectați la interconectarea adiacentă prin intermediul tranzistoarelor programabile.

Blocuri de intrare / ieșire

Blocurile de intrare / ieșire se ocupă de gestionarea semnalelor către și de la FPGA prin controlul pinilor cipului. În dispozitivele Xilinx, de exemplu, fiecare IOB controlează un pin care poate fi configurat ca intrare, ieșire, bidirecțională sau tri-stare . Poziționate de-a lungul perimetrului matricei CLB, IOB-urile din familia Virtex sunt compuse din flip-flop dedicate sincronizării datelor, multiplexoare care gestionează semnalele în modul DDR ( Double Data Rate ) și tampoane pentru gestionarea diferitelor standarde logice. Bufferele vă permit, de asemenea, să controlați viteza de comutare a semnalului, numită viteză de răspuns , pentru comunicații de înaltă frecvență cu dispozitive externe, în timp ce bufferul de intrare are un prag programabil pentru a permite dispozitivului FPGA să interfețe cu diferite standarde logice precum TTL , CMOS sau PCI . Există, de asemenea, rezistențe pull-up / pull-down care vă permit să caracterizați starea pinului în situații de impedanță ridicată.

Linii de interconectare

Liniile de interconectare, pe de altă parte, au sarcina de a pune în comunicație diferitele resurse ale dispozitivului. Se pot distinge două tipuri de interconectare: liniile fixe și matricile de schimb, cunoscute și sub numele de matrice de comutare . Liniile fixe sunt împărțite în linii „scurte” și „lungi”: liniile „scurte” sunt interconectări care conectează CLB-urile adiacente, minimizând întârzierea semnalului; liniile „lungi”, pe de altă parte, permit ca resursele 6 CLB-uri distante una de alta să fie puse în comunicație prin căi neconfigurabile, care nu traversează matricile de schimb și care se caracterizează prin urmare prin faptul că nu introduc întârzieri semnificative. În cele din urmă, matricile de schimb sunt rețele de tranzistori de trecere programabili și comunicanți. Într-un dispozitiv SRAM-FPGA, liniile de interconectare sunt fixe, iar ceea ce este programat sunt conexiunile între diferite linii: majoritatea interconectărilor au loc între două părți diferite ale matricilor de schimb și sunt activate de tranzistoare de trecere.

Utilizare

Aceste dispozitive permit realizarea chiar și a unor funcții logice foarte complexe și se caracterizează prin scalabilitate ridicată. Acest tip de tehnologie a luat un rol din ce în ce mai important în electronica industrială, precum și în cercetarea științifică . Datorită progresului continuu al tehnicilor de miniaturizare, capacitățile acestor dispozitive au crescut enorm în decurs de doar două decenii, timp în care a trecut de la câteva mii de porți logice la câteva milioane de porți logice pentru un singur dispozitiv FPGA.

Date de difuzie

Istoricul utilizării crește

Tendința de-a lungul anilor în numărul de porți logice prezente pe circuitele FPGA:

  • 1982: 8192 porți logice; Burroughs Advances Systems Group; Procesor S-Type de 24 biți pentru I / O reprogramabile
  • 1987: 9.000 de porți logice, Xilinx
  • 1992: 600.000 de porți logice, Departamentul de război al suprafeței navale
  • 2000-2010: Milioane.
  • 2019: 10,2 milioane (Intel Stratix GX 10M)

Dimensiunea pieței:

  • 1985: Primul dispozitiv FPGA de pe piață a fost XC2064 al Xilinx.
  • 1987: 14.000.000 de dolari
  • ~ 1993:> 385.000.000 USD
  • 2005: 1,9 miliarde de dolari. [1]
  • 2010: 2,75 miliarde. [1]
  • 2020: o piață estimată la 8,5 miliarde de dolari.

Principalii producători

Xilinx și Altera începând din 2014 erau cei mai mari doi producători de FPGA. [2] Cele două companii sunt rivale „istorice” și împreună controlează peste 80% din piață. [3] Atât Xilinx, cât și Altera oferă software-ul de dezvoltare pentru Windows și Linux , în versiuni gratuite sau cu plată, și sub licență de proprietate [4] [5] . Acest software permite implementarea logicii în dispozitiv și face posibilă gestionarea resurselor individuale. [6] [7] Alți producători includ Lattice Semiconductor (dispozitive SRAM cu memorie flash integrată) Actel (acum Microsemi , produce dispozitive antifuzibile ), SiliconBlue Technologies , Achronix , [8] și QuickLogic . În martie 2010, Tabula anunță introducerea tehnologiei sale bazate pe logica multiplexată în timp. [9]

Notă

  1. ^ A b Dylan McGrath, EE Times, FPGA Market va depăși 2,7 miliarde de dolari până în '10, spune statistic, depus la 15 iunie 2011 în Internet Archive . . 24 mai 2006. Adus pe 5 februarie 2009.
  2. ^ John Edwards, No room for Second Place: Xilinx and Altera slug it out for supremacy on the changing PLD market , EDN , 1 iunie 2006. Accesat la 11 mai 2012 (arhivat din original la 28 iulie 2012) .
  3. ^ Raportul Altera și Xilinx: Bătălia continuă , pe Seeking Alpha , 17 iulie 2008. Accesat la 13 noiembrie 2013 .
  4. ^ Xilinx Inc., Contractul de licență pentru utilizatorul final ( TXT ), pe Xilinx.com . Adus la 15 octombrie 2015 (arhivat dinoriginal la 17 octombrie 2015) .
  5. ^ Altera Corporation, Acorduri de licență software Altera , la dl.Altera.com . Adus la 15 octombrie 2015 .
  6. ^ Xilinx ISE WebPACK , pe xilinx.com (arhivat din original la 24 iunie 2007) .
  7. ^ Software-ul ediției web Quartus II , pe altera.com . Adus la 1 ianuarie 2014 (arhivat din original la 3 decembrie 2007) .
  8. ^ Achronix va folosi producția Intel de 22 nm , la newsroom.intel.com .
  9. ^ Tabula's Time Machine - Micro Processor Report ( PDF ), pe tabula.com (arhivat din original la 10 aprilie 2011) .

Bibliografie

  • ( EN ) Hartmut F.-W. Sadrozinski; Jinyuan Wu, Jinyuan Wu, Applications of Field-Programmable Gate Arrays in Research Scientific , Taylor & Francis, 2010, ISBN 978-1-4398-4133-4 .
  • (EN) Niklaus Wirth, Manual de proiectare a circuitelor digitale An Introduction, Springer, 1995, ISBN 3-540-58577-X .

Elemente conexe

Alte proiecte

linkuri externe

Controlul autorității LCCN (EN) sh93009062 · GND (DE) 4347749-5