lunes, 19 de septiembre de 2016

std_logic_vector

std_logic_vector

DEFINICION

El tipo std_logic_vector está predefinido en el paquete Std_Logic_1164 como un tipo de matriz de una dimensión estándar con cada elemento siendo del tipo std_logic.
  • Std_logic_vector no es una parte de la Norma VHDL. En lugar de ello, se define por IEEE Std 1164

Sintaxis:

type std_logic_vector is array (natural range <>) of std_logic;

Descripción

Std_logic_vector es un (unbound) es decir vectores sin restricciones de elementos resueltos en nueve valores lógicos ( std_logic tipo), que se definen en el paquete Std_Logic_1164.

El paquete Std_Logic_1164 define operadores lógicos ("and", "nand", "or", "nor", "xor", and "not") para operadores del tipo std_logic_vector. Además, las funciones de conversión desde y hacia bit_vector se apoyan también.

Al asignar un objeto del tipo std_logic_vector se puede realizar de la misma manera como en el caso de las matrices, es decir, utilizando asignaciones de un solo elemento, concatenationaggregates , rebanadaso cualquier combinación de ellos. Por otra parte, debido a que los elementos son de tipo resuelta que se le permite hacer múltiples tareas a un tipo de objeto std_logic_vector. En tal caso, se utiliza la función de resolución definida para std_logic.

EJEMPLO

-----------------------------------------------------------
Type T_Data is array (7 downto 0) of std_logic;
signal DataBus, Memory : T_Data;
CPU : process
variable RegA : T_Data;
begin
  ...
  DataBus <= RegA;
end process CPU;
Mem : process
begin
  ...
  DataBus <= Memory;
end process Mem;
-----------------------------------------------------------

Std_logic_vector es la mejor opción para los autobuses, que son impulsados ​​desde diferentes lugares, como en el bus de datos enumerados arriba. Tal asignación múltiple sería ilegal si se utiliza un bit_vector.

Notas importantes

  • Std_logic_vector no se debe confundir con el tipo Std_Ulogic_Vector. Elementos de estos últimos son del tipo Std_Ulogic y son de la versión unresloved de std_logic. Esto significa que es ilegal  los dos valores (por ejemplo, '0' y 'Z') para ser simultáneamente en una señal del tipo Std_ulogic.
  • Con el fin de utilizar el tipo de std_logic_vector, el paquete Std_Logic_1164 debe estar incluido explícitamente en el comienzo de una entidad:
    biblioteca IEEE; utilizar IEEE.Std_Logic_1164. todo ;

Webgrafia
http://www.vhdl.renerta.com/mobile/source/vhd00069.htm

No hay comentarios:

Publicar un comentario