lunes, 20 de octubre de 2014

Lógica progamable (II): ¿que es eso del HDL?

Los dispositivos lógicos necesitan configurarse, y la forma de hacerlo es usando un lenguaje similar a los de programación denominados genéricamente HDL, Hardware Description Language o Lenguaje de DESCRIPCION de Hardware, y subrayo el DESCRIPCION ya que no se comportan como lenguajes normales de programación.

Un ejemplo típico de la diferencia, usando C, para intercambiar dos variables entre si se usa una auxiliar, y si queremos cambiar el contenido de la variable A por el de la variable B, usando como auxiliar la C debemos introducir 3 líneas:

C = A;
A = B;
B = C;

Sin embargo en un HDL como Verilog o Abel, que usan la sintaxis del C, las variables no existen, solo existen señales, y para intercambiar una señal A y una señal B se usa:

A = B;
B = A;

En VHDL, para evitar el uso de la asignación y dejar claro que no son variables sino señales se usaría

A <= B;
B <= A;

Ambas sentencias se ejecutan SIMULTANEAMENTE, no secuencialmente, que es la gran diferencia en este tipo de lenguajes, estamos configurando un chip, por tanto todo se ejecuta a la vez, a no ser que expresamente lo sincronicemos con una señal de reloj.

El lenguaje por excelencia para esto es VHDL, basado en la sintaxis del ADA y que gusta mas a los electrónicos, pero es igual de ponente que Verilog, basado en C y que suele gustar mas a los programadores, o ABEL, también basado en C, que se suele usar mas en la definición de chips mas pequeños como las GAL, en el que el hardware puede definirse usando ecuaciones lógicas o tablas de verdad, y no requiere grandes recursos para generar el hard.

No hay comentarios:

Publicar un comentario