¿VHDL “lanza” una constante en una señal?

1

¿Hay una manera de convertir un valor constante en una señal para enviarlo al parámetro de una función?

Digamos que tengo esta función:

Function mylogic(signal a, b, c : std_logic) return std_logic is
Begin
    return ((not a) and (not b) and c);
End Function;

Y me gustaría llamarlo así:

... mylogic('0',a(3),a(4))...

No puedo enviar '0' como parámetro porque la función espera una señal. ¿Hay alguna forma de que funcione sin declarar otra señal para mantener el valor '0'?

    
pregunta Mike

1 respuesta

5

Simplemente haga las constantes de parámetros formales (es decir, elimine la palabra signal en la declaración de la función).

De todos modos no los estás conduciendo dentro de la función. (Si es así, no es una función)

Luego, cuando llama a la función, el valor actual de cada señal se pasa como una constante a la función.

Esto no funcionará si su función utiliza los atributos de la señal (como 'event o 'stable , pero 'length , etc. que no son específicos de las señales, estarían bien). Si SÍ necesita atributos de señal específicos, deberá agregar una señal de todos modos.

    
respondido por el Brian Drummond

Lea otras preguntas en las etiquetas