numeric_std es un paquete de biblioteca definido para VHDL . Proporciona funciones aritméticas para vectores. Se definen sobrecargas de std_logic_vector para aritmética con y sin signo . Define tipos numéricos y funciones aritméticas para su uso con herramientas de síntesis. Se definen dos tipos numéricos: UNSIGNED (que representa un número sin signo en forma vectorial) y SIGNED (que representa un número con signo en forma vectorial). El tipo de elemento base es STD_LOGIC. El bit más a la izquierda se trata como el bit más significativo. Los vectores con signo se representan en complemento a dos. Este paquete contiene operadores aritméticos sobrecargados para los tipos SIGNED y UNSIGNED. El paquete también contiene funciones útiles de conversión de tipos.
Normalmente se incluye en la parte superior de una unidad de diseño:
library ieee ; use ieee.std_logic_1164. all ; -- lógica estándar no resuelta UX01ZWLH- use ieee.numeric_std. all ; -- para los tipos con signo, sin signo y operaciones aritméticasEl paquete numérico alternativo ieee.std_logic_arith no debe utilizarse para nuevos diseños. Este paquete no proporciona anulaciones para mezclar funciones con signo y sin signo. Este paquete incluye definiciones para lo siguiente (no todas son sintetizables): [ 1 ]
Operadores y funciones
Operadores de cambio de señales
- abdominales
- -
Operadores aritméticos
- +
- -
- *
- /
- movimiento rápido del ojo
- mod
Nota: el segundo argumento de /, rem o mod debe ser distinto de cero.
Operadores de comparación
- >
- <
- <=
- >=
- =
- /=
Funciones de cambio y rotación
- MAYÚS_IZQUIERDA
- MAYÚS_DERECHA
- GIRA A LA IZQUIERDA
- GIRAR A LA DERECHA
- todo
- srl
- rol
- ror
Función de redimensionamiento
- CAMBIAR EL TAMAÑO(v,n)
Nota: al aumentar el tamaño de un vector con signo, los bits más a la izquierda se rellenan con el bit de signo, mientras que el truncamiento conserva el bit de signo junto con los (n-1) bits más a la derecha. Para un vector sin signo, un aumento de tamaño rellena los bits más a la izquierda con ceros, mientras que el truncamiento conserva los n bits más a la derecha.
Funciones de conversión
- TO_ENTERO
- PARA_SIN FIRMA
- PARA FIRMADO
Nota: Las dos últimas funciones requieren un segundo argumento que especifique la longitud del vector resultante.
- no
- y
- o
- nand
- ni
- xor
- xnor
Función de coincidencia
- COINCIDENCIA_ESTÁNDAR
Nota: compara los vectores de argumentos elemento por elemento, pero trata cualquier bit con el valor '-' como si coincidiera con cualquier otro valor STD_ULOGIC. Devuelve falso si algún bit del argumento es 'U', 'X', 'W' o 'Z'.
Función de traducción especial
- TO_01
Nota: 'H' se traduce a '1' y 'L' a '0'. Esta función acepta un segundo argumento opcional, XMAP, que puede ser cualquiera de los valores de std_logic, pero por defecto es '0'. Cualquier valor distinto de 01LH en el argumento de entrada provoca que todos los bits se establezcan en XMAP y se emita una advertencia.
Referencias
- ↑ 1076.3 Paquetes de síntesis VHDL estándar IEEE
- lenguajes de descripción de hardware