Matriu de portes programable in situUna matriu de portes programable in situ (FPGA, sigles angleses de Field-Programmable Gate Array) és un dispositiu semiconductor que conté blocs de lògica la interconnexió i funcionalitat dels quals pot ser configurada 'in situ' mitjançant un llenguatge de programació especialitzat. La lògica programable pot reproduir des de funcions tan senzilles com les que realitza una porta lògica fins a sistemes complexos en un xip. Les FPGAs s'utilitzen en aplicacions similars als ASICs encara que són més lentes, tenen un major consum de potència i no poden contenir sistemes tan complexes com elles mateixes. Així i tot, les FPGAs tenen els avantatges de ser reprogramables (el que afegeix una gran flexibilitat al flux de disseny), els seus costos de desenvolupament i adquisició són molt menors per a petites quantitats de dispositius i el temps de desenvolupament és també menor. Certs fabricants compten amb FPGAs que només es poden programar un cop, pel que els seus avantatges i inconvenients es troben a mig camí entre els ASICs i les FPGAs reprogramables. Històricament les FPGAs sorgeixen com una evolució dels conceptes desenvolupats en les PLAs i els CPLD. Tradicionalment, els enginyers han utilitzat les FPGA amb eines de programació fetes per experts. Això no obstant, com que les FPGA s'han tornat més ràpides i més rendibles, els enginyers i investigadors amb poca o cap experiència en disseny de hardware digital estan buscant aprofitar les FPGA per crear solucions personalitzades. Per abastar aquest creixent interès, els proveïdors estan creant eines de més alt nivell que fan més fàcil programar FPGA i brindar els beneficis de la tecnologia FPGA a noves aplicacions. HistòriaLes FPGAs foren inventades l'any 1984 per Ross Freeman, cofundador de Xilinx, i van sorgir com una evolució dels PLAs i dels CPLD. Són el resultat de la convergència de dues tecnologies diferents, els dispositius lògics programables (PLDs Programmable Logic Devices) i els circuits integrats d'aplicació específica (ASIC [application-specific integrated circuit]). La història dels PLDs va començar amb els primers dispositius PROM (Programmable Read-Only Memory), i se'ls va afegir versatilitat amb els PAL (Programmable Array Logic) que van permetre un major nombre d'entrades i la inclusió de registres. Aquests dispositius han continuat creixent en grandària i potència. Mentrestant, els ASIC sempre han estat potents dispositius, però el seu ús ha requerit tradicionalment una considerable inversió tant de temps com de diners. Intents de reduir aquesta càrrega han provingut de la modularització dels elements dels circuits, com els ASIC basats en cel, i de l'estandardització de les màscares, tal com Ferranti va ser pioner amb la ULA (Uncommitted Logic Array). El pas final era combinar les dues estratègies amb un mecanisme d'interconnexió que pogués programar utilitzant fusibles, antifusibles o cel RAM, com els innovadors dispositius Xilinx de mitjans dels 80. Els circuits resultants són semblants en capacitat i aplicacions als PLDs més grans, encara que hi ha diferències puntuals que delaten avantpassats diferents. A més de computació reconfigurable, les FPGAs s'utilitzen en controladors, codificadors / decodificadors i en el prototipat de circuits VLSI i microprocessadors a mida. El primer fabricant d'aquests dispositius va ser Xilinx i els dispositius de Xilinx es mantenen com un dels més populars a companyies i grups de recerca. Altres venedors en aquest mercat són Atmel, Altera, AMD, Cypress i Lattice. Portes
Mercat
Disseny de la FPGAComparacions de FPGAHistòricament, les FPGAs han estat més lentes, menys eficients i generalment s'assoleix menys funcionalitats que els ASIC. Un estudi ha demostrat que els dissenys implementats en FPGAs necessiten una mitjana de 18 vegades més àrea, consumir 7 cops més potència dinàmica, i són 3 vegades més lentes que les implementacions d'ASIC corresponent. Els avantatges inclouen la capacitat de reprogramar el camp per corregir errors, i poden estar menys temps en el mercat. Els venedors també poden prendre un camí intermedi mitjançant el desenvolupament del maquinari en FPGAs ordinàries, però la fabricació de la seva versió ja no pot ser modificat. Xilinx afirma que el mercat i la dinàmica de la tecnologia estan canviant el paradigme de l'ASIC/FPGA[8]
PrestacionsUna jerarquia d'interconnexions programables permet als blocs lògics d'un FPGA ser interconnectats segons la necessitat del dissenyador del sistema, molt semblant a un breadboard (placa d'ús genèric reutilitzable o semi permanent) programable. Aquests blocs lògics i interconnexions poden ser programats després del procés de manufactura per l'usuari / dissenyador, així que el FPGA pot exercir qualsevol funció lògica necessària. Una tendència recent ha estat combinar els blocs lògics i interconnexions dels FPGA amb microprocessadors i perifèrics relacionats per formar un sistema programable en un xip. Exemple d'aquestes tecnologies híbrides poden ser trobats en els dispositius Virtex-II PRO i Virtex-4 de Xilinx, els quals inclouen un o més processadors PowerPC embeguts juntament amb la lògica del FPGA. El FPSLIC de Atmel és un altre dispositiu similar, que utilitza un processador AVR en combinació amb l'arquitectura lògica programable de Atmel. Una altra alternativa és fer ús de nuclis de processadors implementats fent ús de la lògica del FPGA. Aquests nuclis inclouen els processadors MicroBlaze i PicoBlaze de Xlinx, Nens i Nens II d'Altera, i els processadors de codi obert LatticeMicro32 i LatticeMicro8. Molts FPGA moderns suporten la reconfiguració parcial del sistema, permetent que una part del disseny sigui reprogramada, mentre les altres parts segueixen funcionant. Aquest és el principi de la idea de la «computació reconfigurable», o els «sistemes reconfigurables». FPGAs vs CPLDsTant els CPLDs com les FPGAs contenen un gran nombre d'elements lògics programables. Si mesurem la densitat d'aquests elements en portes lògiques equivalents es podria dir que en un CPLD trobaríem de l'ordre de desenes de milers, i en una FPGA de l'ordre de cents de milers fins a milions d'elles. A part de les diferències en densitat entre tots dos tipus de dispositius, la diferència fonamental entre les FPGAs i les CPLDs és la seva arquitectura. L'arquitectura dels CPLDs és més rígida i consisteix en una o més sumes de productes programables on els seus resultats van a parar a un nombre reduït de biestables síncrons (també denominats flip-flops). L'arquitectura de les FPGAs, per altra banda, es basa en un gran nombre de petits blocs utilitzats per a reproduir senzilles operacions lògiques, que compten al seu torn amb biestables síncrons. L'enorme llibertat disponible en la interconnexió dels blocs concedeix a les FPGAs una major flexibilitat, però a costa de la pèrdua del determinisme en els temps de propagació i una menor velocitat possible dels circuits implementats. Una altra diferència important entre FPGAs i CPLDs és que en la majoria de les FPGAs es poden trobar funcions d'alt nivell (com sumadors i multiplicadors) intrínseques en la mateixa matriu d'interconnexions, així com blocs de memòria, tot i que els darrers models de CPLD comencen a incorporar també aquest tipus de funcions. FPGAs respecte als ASICsLes FPGAs s'utilitzen en aplicacions similars als ASICs, però en comparació presenten els següents avantatges i inconvenients: Avantatges:
Inconvenients:
Consideracions de seguretatPel que fa a la seguretat, les FPGAs tenen avantatges i desavantatges en comparació amb els ASICs o microprocessadors segurs. La flexibilitat FPGAs, fa que les modificacions malicioses que pugui haver-hi durant la fabricació, siguin de menor risc. Per molts FPGAs, el disseny està exposat mentre es carrega (en general en cada encesa del dispositiu). Per abordar aquesta qüestió, alguns FPGAs suporten el xifrat ‘bitstream encryption'. Alguns models permeten emmagatzemar el bitstream en una memòria interna, per exemple els de la família ICE40 de Lattice. ProgramacióLa feina del programador és definir la funció lògica que realitzarà cada un dels CLB, seleccionar el seu mode de treball de cada IOB e interconnectar-lo. En un flux de disseny típic, un desenvolupador d'aplicacions FPGA simularà el disseny en diverses etapes durant el procés de disseny. Inicialment, la descripció RTL en VHDL o Verilog se simula mitjançant la creació de bancs de proves per simular el sistema i observar els resultats. Després que el motor de síntesi ha traçat el disseny a un netlist, el netlist es tradueix a una descripció del nivell de la porta on la simulació es repeteix per a confirmar la síntesi a terme sense errors. Finalment, el disseny es presenta a la FPGA moment en què les demores de propagació es poden afegir i executar la simulació de nou amb aquests valors de back-anotat al netlist. El dissenyador compta amb l'ajuda d'entorns de desenvolupament especialitzats en el disseny de sistemes a implementar-se en una FPGA. Un disseny pot ser capturat ja sigui esquemàtic o fent ús d'un llenguatge de programació especial. Aquests llenguatges de programació especials són coneguts com a HDL o "Hardware Description Language" (llenguatges de descripció de hardware). Els HDLs més utilitzats són:
En un intent de reduir la complexitat i el temps de desenvolupament en fases de prototipatge ràpid, i per validar un disseny en HDL, existeixen diverses propostes i nivells d'abstracció del disseny. Entre altres National Instruments LabVIEW FPGA proposa un llenguatge de programació gràfica d'alt nivell. AplicacionsQualsevol circuit d'aplicació específica pot ser implementat en una FPGA, sempre que aquest disposi dels recursos necessaris. Les aplicacions on més comunament s'utilitzen les FPGA inclusiu els DSP (processament de senyals digitals), ràdio definit per software, sistemes aeroespacials i de defensa, prototipus de ASCs, sistemes d'imatges per a medicina, sistemes de visió per a computadors, reconeixement de veu, bioinformàtica, emulació de hardware de computadora. Hem de saber que el seu ús en altres àrees, és cada vegada major, sobretot en aquelles aplicacions que requereixen un alt grau de paral·lelisme. Les FPGAs especialment troben aplicacions en qualsevol àrea o algorisme que pugui fer ús de l'alt grau de paral·lelisme ofert per la seva arquitectura. Un dels quals és el trencament de codis, en particular atacs de força bruta a algorismes criptogràfics. A més cada cop són més usades en aplicacions convencionals d'alt rendiment on els nuclis computacionals com FFT o convolució són implementats en una FPGA en comptes d'un processador d'ús general. Existeix codi font disponible (sota llicència GNU GPL)[9] de sistemes com microprocessadors, microcontroladors, filtres, mòduls de comunicacions i memòries, entre altres. Aquests codis s'anomenen cores. Tecnologia de la memòria de programacióLes FPGAs també es poden diferenciar per utilitzar diferents tecnologies de memòria:
Exemple de tecnologia USB que incorpora una FPGA: Arquitectura FPGAL'arquitectura d'una FPGA consisteix en una sèrie de blocs lògics configurables (CLBs)amb uns canals d'encaminament.En general, tots els canals de transmissió tenen el mateix ampla (nombre de cables). poden encaixar en l'altura d'una fila o l'ampla d'una columna de la matriu. Un circuit d'aplicació ha de ser assignat a un FPGA amb recursos suficients. El nombre de CLBs i E / S són fàcils de determinar des del disseny encara que el nombre de pistes d'encaminament pot variar considerablement, inclus entre els dissenys amb la mateixa quantitat de lògica (per exemple, un interruptor de commutació d'encaminament requereix molt més que un conjunt sistològic amb el mateix nombre de portes.). Donat que l'encaminament no utilitza pistes i incrementa el cost (disminueix el rendiment) de la part sense aportar cap benefici, els fabricants de FPGA tracten de proveir les suficients pistes perquè la majoria dels dissenys que s'ajustaran en termes de LUT i OI puguin ser utilitzats. Això és determinat per les estimacions tals com les derivades de la regla de Rent o per experiments amb els dissenys existents. Tipus bàsics de tecnologia de procés
Fabricants de FPGAA principis de 2007, el mercat de les FPGA s'ha col·locat en un estat on hi ha dos grans productors de FPGA de propòsit general i un conjunt d'altres competidors els quals es diferencien per oferir dispositius de capacitats úniques.
Referències
|