Casa > Exposició > Contingut

Disseny i programació de matrius de portes programables per camp

Mar 11, 2019

Per definir el comportament de la FPGA, l'usuari proporciona un disseny en un llenguatge de descripció de maquinari (HDL) o com a disseny esquemàtic. La forma HDL és més adequada per treballar amb estructures grans perquè és possible especificar un comportament funcional d'alt nivell en lloc de dibuixar cada peça a mà. No obstant això, l'entrada esquemàtica pot permetre la visualització més fàcil d’un disseny i dels seus mòduls de components.


Utilitzant una eina d’automatització de disseny electrònic, es genera una llista de xarxes amb mapes tecnològics. A continuació, la llista de xarxes es pot adaptar a l’arquitectura FPGA real mitjançant un procés anomenat lloc i ruta, normalment realitzat pel programari propietari i de ruta de l’empresa FPGA. L’usuari validarà els resultats del mapa, el lloc i la ruta a través d’anàlisi de temps, simulació i altres metodologies de verificació i validació. Un cop completat el procés de disseny i validació, el fitxer binari generat, normalment amb el programari propietari del proveïdor de FPGA, s'utilitza per a (tornar) configurar la FPGA. Aquest fitxer es transfereix a la FPGA / CPLD mitjançant una interfície sèrie (JTAG) o un dispositiu de memòria extern com una EEPROM.


Les HDL més habituals són VHDL i Verilog, així com extensions com SystemVerilog. No obstant això, en un intent de reduir la complexitat del disseny en HDLs, que s'han comparat amb l'equivalent de llenguatges de muntatge, hi ha moviments per augmentar el nivell d'abstracció mitjançant la introducció de llengües alternatives. El llenguatge de programació gràfica LabVIEW de National Instruments (de vegades anomenat "G") té un mòdul de complements FPGA disponible per orientar i programar maquinari FPGA.


Per simplificar el disseny de sistemes complexos en FPGA, existeixen biblioteques de funcions complexes i circuits predefinits que han estat provats i optimitzats per accelerar el procés de disseny. Aquests circuits predefinits són comunament anomenats nuclis de propietat intel·lectual (IP) i estan disponibles en proveïdors FPGA i proveïdors de propietat intel·lectual de tercers. Rares vegades són gratuïtes i solen ser lliurades sota llicències propietàries. Altres circuits predefinits estan disponibles a comunitats de desenvolupadors com OpenCores (normalment publicades sota llicències de codi lliure i obert com ara la llicència GPL, BSD o similar) i altres fonts. Aquests dissenys es coneixen com a "maquinari de codi obert".


En un flux de disseny típic, un desenvolupador d’aplicacions FPGA simularà el disseny en diverses etapes al llarg del procés de disseny. Inicialment, la descripció de RTL en VHDL o Verilog es simula mitjançant la creació de bancs de prova per simular el sistema i observar els resultats. Després, després que el motor de síntesi hagi assignat el disseny a una llista de xarxes, la llista de xarxes es tradueix a una descripció de nivell de porta on es repeteix la simulació per confirmar que la síntesi es va iniciar sense errors. Finalment, el disseny es presenta a la FPGA en el qual es poden afegir retards de propagació i la simulació es torna a executar amb aquests valors anotats a la llista de xarxa.


Més recentment, els programadors utilitzen OpenCL (Open Computing Language) per aprofitar el rendiment i les eficiències energètiques que proporcionen els FPGA. OpenCL permet als programadors desenvolupar codi al llenguatge de programació C i orientar les funcions de FPGA com a nuclis OpenCL utilitzant construccions OpenCL. Per a més informació, vegeu síntesi d'alt nivell i C a HDL.