2.6. Conversión a texto

En Sección 2.5 vimos que era posible informar mensajes al usuario. Dichos mensajes pueden ser cadenas de caracteres como las que vimos en Sección 2.4 o bien cadenas de caracteres encerradas con comillas dobles. Es posible concatenar varias cadenas de caracteres utilizando el operador &, no olvidemos que sólo son vectores de char.

El problema aparece cuando deseamos que el mensaje incluya valores de señales o variables que no son cadenas de caracteres. Para esto se utiliza la siguiente sintaxis:

TIPO_DE_DATOS'image(ELEMENTO)

Esto nos devuelve la representación en texto (por eso image) del ELEMENTO indicado (variable o señal) utilizando la conversión necesaria para el TIPO_DE_DATOS indicado. En el Ejemplo 2-7 vemos algunos casos posibles.

Atención

Este tipo de conversión sólo puede aplicarse a escalares (enteros, coma flotante, tipos físicos y enumeraciones) y no a vectores o tipos compuestos.

Ejemplo 2-7. Como obtener una representación en formato de texto

-- En la arquitectura tenemos declarado
signal sx     : integer:=5;
signal tiempo : time:=20 ns;
-- En un proceso podemos reportar
report "El valor de la señal sx es "&integer'image(sx) severity note;
report "tiempo="&time'image(tiempo) severity note;
-- Estos reportes se verán como algo así
/tmp/test.vhdl:22:7:@0ms:(report note): El valor de la señal sx es 5
/tmp/test.vhdl:23:7:@0ms:(report note): tiempo=20000000 fs
Copyright © 2011 UTN FRBA - INTI - Ing. Salvador E. Tropea