Introducere in istoria FPGA

FPGA – urile ( Field Programmable Gate Array – Tablouri de Porti Programabile pe Campuri ), asa cum sunt referite in literatura de specialitate de cele mai multe ori, sunt un tip de unitati (logice) programabile. Unitatile programabile sunt o clasa de chip-uri de interes general care pot fi configurate pentru o mare varietate de aplicatii.

Primele unitati programabile care au confirmat au fost PROM - urile

( Programmable Read-Only Memory – Memorii Programabile cu Acces Doar-pentru-Citire ). PROM – urile programabile o singura data sunt de doua tipuri :

  1. Mask-Programmable Chip – care sunt programate doar de producator
  2. Field-Programmable Chip – care sunt programate de utilizatorul final

Field-Programmable Chip sunt impartite in alte doua tipuri:

  1. Eraseable Programable Read-Only Memory (EPROM) - ele pot fi sterse si reprogramate o singura data
  2. Electrically Eraseable Programmable Read-Only Memory (EEPROM) – pot fi de asemenea sterese si reprogramate prin procedee electrice speciale, avand avantajul ca aceste actiuni de schimbare a continutului lor pot fi realizate de mai multe ori.

Un pas important in acest domeniu a fost facut la aparitia PLD urilor ( Programmable Logic Device – Unitati Logice Programabile ) Aceste unitati (dispozitive) au fost construite cu scopul de a implementa circuite logice. PLD – urile includeau un sir de porti SI conectate la un sir de porti SAU. PAL – urile ( Programmable Array Logic – Tablouri Logice Programabile ) un tip de PLD des folosite constau dintr-un plan SI programabil urmat de un plan SAU fixat. PAL – urile se gasesc in ambele variante (Mask si Field). PAL – urile au fost construite pentru circuite logice mici.

MPGA urile ( Mask Programmable Gate Array ) au aparut in ideea de a deservi circuitele logice mai mari. Marea parte a MPGA – urilor este alcatuita din linii de tramzistoare care pot fi interconectate in scopul implementarii circuitelor logice dorite. "Utilizatorul" poate stabili dupa propria necesitate daca conexiunile se realizeaza in interiorul liniilor si/sau intre linii. Acest lucru a inlesnit implementarea circuitelor logice de baza dar a permis si interconectarea portilor. Datorita faptului ca metalul de suport poate fi ales de fabricant s-a economisit mult in domeniile costului si timpului de productie. In 1985, Xilinx Inc. a introdus FPGA – urile ( Field Progammable Gate Array – Tablouri de Porti Programabile pe Campuri ), acestea fiind de fapt si obiectul studiului nostru. FPGA – urile ofera posibilitatea de a stabili interconexiunile dintre toate elementele.

 

Ce sunt FPGA – urile ?

FPGA – urile sunt un sir de celule continand elemente losigice si de memorie, configurabile. Celulele pot fi interconectate folosind un numar mare de switch – uri (intrerupatoare) programabile, intr-o varietate de moduri de constructie virtuala a orcarui sistem digital. Matricile de elemente logice si switch-uri pot fi configurate extern prin intermediul unui "bit stream" reprezentand respectiva functie sau sistem digital. Sistemele aparute oferite de producatorii de FPGA – uri genereaza "bit stream" - mul folosind o descriere sistematica sau de nivel inalt a sistemului digital, descriere realizata in Veriolg sau in limbajul VHDL. Design-ul poate fi simulat inainte de configurarea FPGA – ului. Cele mai multe FPGA – uri sunt re-programabile si astfel pot fi modificate foarte usor. Acest lucru ofera flexibilitate si reduce riscurile in comparatie cu ASIC – urile care nu pot fi reprogramate. Din ce in ce mai multe aplicatii folosesc tot mai des FPGA – urile din diverse motive. Inalta performata, schimbarile de situatie tot mai rapide si costurile scazute sunt sunt doar cateva dintre aceste motive. Acum FPGA – urile sunt foarte complexe si implica multe scheme pentru imbunatatirea performantelor, reducerea numarului de componente si a costurilor. De exemplu, majoritatea FPGA – urilor ofera in prezent mai multe standarde diferite de I/O, dar la fel de bine si elimina rezistorii terminali de pe placa. Exista mult mai multe avantaje pe care le au FPGA – urile, iar producatorii sunt intr-o continua munca de imbunatatire a lor.

 

 


Exemplu de implementare FPGA

 

Despre FPGA

Exista patru mari categorii de FPGA – uri disponibile in mod curent: tablouri simetrice, bazate pe linii, PDL ierarhic si "mare-de-porti".

Cele patru categorii de baza

In toate aceste categorii, interactiunile si modul in care sunt programate difera. In prezent exista patru tehnologii. Acestea sunt:

Depinzand de aplicatie fiecare FPGA poate avea unele avantaje pentru acea aplicatie.

Tehnologia RAM static – in cazul acestei tehnologii conexiunile programabile se fac cu ajutorul unor tranzistoare, porti terminale sau multiplexoare care sunt controlate de celulele SRAM. Avantajul acestei tehnologii este acela ca permite reconfigurarea interna rapida a circuitului. Marele dezavantaj este marimea chip-ului necesitat de tehnologia RAM.

Tehnologia Anti-Fuse – se redimensioneaza in stare de inalta impedanta si poate fi programata la impedanta scauta sau starea de "fuzibil". Chip-ul este mai mic decat cel necesitat in cazul tehnologiei RAM, dar poate fi programat o singura data.

Tehnologia EPROM / EEPROM - aceasta metoda este aceeasi folosita si la memoriile EPROM. Un avantaj al acestei tehnologii il constituie faptul ca reprogramarea se poate face fara o stocare externa a configuratiei, chiar daca tranzistoarele EPROM nu pot fi reprogramate in circuit.

Caracteristici ale celor 4 tehnologii

 

Cateva dintre versiunile comerciale de FPGA - uri

 

In continuare va vom prezenta o lista de masini computerizate care folosesc FPGA – uri, lista ce demonstreaza inca o data cat de importante sunt si amploarea pe care au luat-o.

 

 

 

 

 

Actel:

Algotronix CAL Series:

Altera:

ATT / Lucent ORCA:

Intel:

Xilinx XC3000 Series:

Xilinx XC4000 Series:

Xilinx XC6200 Series:

Xilinx XC9000 Series:

Custom IC: