jueves, 4 de junio de 2009

¿Es "software" el contenido de una FPGA?

La palabra software está íntimamente ligada a la SDR. De hecho es su inicial "S" la que da comienzo al acrónimo "SDR".

En un procesador, el software es el programa que hace que funcione. Un conjunto de instrucciones que se ejecutan secuencialmente y que permiten implementar los algoritmos y secuencias de operaciones para resolver un determinado problema.
Cuando se requiere mucha velocidad y capacidad de cálculo no se emplean procesadores DSP sino que se emplean unos dispositivos llamados FPGA -acrónimo de: Field Programmable Gate Array-. Estos dispositivos no ejecutan programas secuencialmente, sino que son circuitos que se configuran dinámicamente para responder a un determinado comportamiento lógico. Con una FPGA se pueden "sintetizar" diversos circuitos digitales, combinacionales o secuenciales y de diversa complejidad. Es posible incluso construir un procesador a partir del conexionado de sus elementos internos.

Una FPGA de las que se emplean en proceso de señal puede tener unidades de cálculo DSP -multiplicación y acumulación- ya integradas que pueden conectarse entre sí. Se pueden emplear simultáneamente, lo que aumenta su capacidad de cálculo. Preparar el dispositivo para una determinada función es cargarle un código que no contiene una serie de instrucciones para su ejecución una tras otra, sino un "mapa" del modo en que deben conectarse las diferentes unidades que conforman el dispositivo. Cambiando este "mapa" se cambia la funcionalidad.
¿Podemos llamar a esto software?. Si nos atenemos a la definición del diccionario Cambridge's Advanced, creo que sí -aunque sea por los pelos-. Según este diccionario, software es "el conjunto de instrucciones que controlan lo que hace un ordenador". Y al fin y al cabo, la función que realiza una FPGA en una SDR es de cálculo, por lo tanto de ordenador.

Creo que he hecho un poco de trampa y se puede argumentar en contra. Pero es que me conviene que sea que sí. Una SDR es "reconfigurable" en software. Si dispone de una FPGA dispone de un elemento reconfigurable, así que cuando se reconfigure diremos que es mediante software. Por otra parte, y para argumentar en mi favor, para el diseño de FPGA se emplean lenguajes descriptivos -Verilog y VHDL son los más comunes- que se parecen a otros lenguajes de programación más empleados en procesadores DSP.

¡No se hable más!. El contenido de una FPGA es software. Bueno, al menos desde el punto de vista de una SDR.

No hay comentarios:

Publicar un comentario