Mostrando entradas con la etiqueta conversion de tipos. Mostrar todas las entradas
Mostrando entradas con la etiqueta conversion de tipos. Mostrar todas las entradas

domingo, 26 de junio de 2011

ieee.numeric_std.all - Funciones de Conversión / Cast

Anteriormente en el blog ieee.numeric_std.all vs. ieee.std_logic_arith.all expliqué el porque del uso de la paquete ieee.numeric_std.all;.en este blog describo en un simple diagrama cuales son las diferentes funciones de conversión de tipo disponibles en el paquete numeric_std y su modo de uso para las conversiones respectivas. También se detalla el uso de cast para conversiones entre tipos relacionados como std_logic_vector y unsigned.




El uso de este diagrama para la conversión de tipos es bastante sencillo.
Por ejemplo, para convertir un tipo integer a un tipo  std_logic_vector, hay que seguir la línea amarilla junto con las funciones respectivas: se comienza con la función to_unsigned(int, unsigned'length) y luego se usa el cast std_logic_vector sobre el unsigned obtenido previamenteunsigned'length significa el número de bits necesarios para representar el respectivo integer. Por ejemplo 4 bits para el entero mayor que 7 y menor o igual que 15; 3 bits para un entero entre 0 y 7; etc.  
Para ir del tipo std_logic_vector al tipo signed, solo hace falta aplicar el cast signed sobre el slv (std_logic_vector), es decir la línea verde entre ambos. 

Espero que sea de utilidad . . . . ah!, si querés el pdf de la figura, acá lo encontrás. y el pdf de este blog y del anterior aca :)  ..