Programar FPGAs en C
Síntesis de C a hardware con Altium Designer
Publicado en Elektor n° 344, Febrero 2009

Las FPGAs generalmente utilizan lenguajes especiales como el VHDL, que sin embargo no son fáciles de aprender. ¡Ahora también podremos utilizar C! Al contrario que los programas secuenciales de los microcontroladores, ganaremos considerablemente en velocidad. En el ejemplo de la suite de desarrollo Altium Designer mostramos cómo funciona el diseño de FPGAs basado en C. Las FPGAs son elementos de hardware que internamente pueden estar basados en software. A diferencia de los microcontroladores, en los que su programa corre secuencialmente, con la utilización de estos chips pueden obtenerse ventajas sustanciales en velocidad. En contra de los ASICs, las FPGAs son mucho más flexibles, agilizando y abaratando el proceso de diseño debido a la reducción en el número de componentes. En los desarrollos comunes con FPGAs (y también con ASICs) la estructura y función del circuito interno del chip en el RTL (“Register Transfer Level”) se hacen en lenguajes descriptivos de hardware como VHDL o Verilog. Una vez que el diseño ha sido simulado y verificado, el RTL es convertido a datos GDSII para poder generar la máscara o los archivos binarios (“Bit-Files”) para la configuración de la FPGA. La metodología de prototipos RTL permite al desarrollador de hardware optimizar el diseño sobre la pastilla de silicio y la velocidad de proceso, así como minimizar las pérdidas en el rendimiento. Estos aspectos son quizá menos importantes cuando hemos de reducir costes y el desarrollo es urgente. Aquí se muestra que los desarrollos basados en RTL tienen alguna desventaja:
|