Diferencia entre señal y variable en VHDL

VHDL utiliza tanto señales como variables, y su funcionamiento es completamente diferente. Es muy importante conocer en detalle el mismo para saber cuando hay que utilizar cada una de ellas.

Para entender que es una señal tenemos que asumir que en VHDL no estamos programando, si no que estamos describiendo el comportamiento de un circuito electrónico, compuesto por “componentes”, que son nuestras entidades, que son nuestras señales. Estas señales nos permitirán conectar componentes y procesos entre sí.

Por el contrario una variable es simplemente un almacén temporal de un valor que se utiliza como apoyo mientras estamos programando. No tiene ningún significado físico y deriva de los lenguajes de programación.

Una vez entendido esto podemos establecer las diferencias básicas entre las dos:

  •  Una señal se declara a nivel de la arquitectura y puede ser leída por varios procesos. Una variable se declara dentro de un proceso y solo puede ser leída y escrita desde él.
  • La asignación a una variable se hace mediante el operador := , a una señal se le asigna valores mediante la flecha <=
  • Si estamos describiendo un proceso combinacional, todas las señales que leamos deben ser declaradas en la lista de sensibilidad del proceso. Las variables no.
  • Los puertos se comportan como señales.
  • Una variable toma inmediatamente el valor que se le asigna, como en un lenguaje de programación. Sin embargo en una señal los valores que se le dan no se “cargan” hasta que avanza en tiempo de simulación y en ese momento tomará el último valor que se le haya dado.


Comentarios

Entradas populares de este blog

CROCODILE CLIPS

Compuertas Logicas