Vhdl introduccion



Descargar 95,53 Kb.
Página2/6
Fecha de conversión22.07.2017
Tamaño95,53 Kb.
1   2   3   4   5   6

Parte de un arreglo. (Slices)

  • Una parte de un arreglo unidimensional, en general, y un bit_vector en particular puede ser referenciado, inclusive por un solo elemento. La dirección de esta parte (es decir, to o downto) debe corresponder con la dirección del arreglo declarado.
  • signal Z_BUS: bit_vector(3 downto 0);
  • signal C_BUS: bit_vector(1 to 4);
  • legal
  • Z_BUS (3 downto 0) <=“00”
  • C_BUS:(2 to 4) <= Z_BUS (3 downto 1);
  • ilegal
  • Z_BUS (0 to 1) <=“111”
  • Los slices de vectores de bit son útiles debido a que a menudo pueden ser vistos como colecciones de campos, donde cada campo lleva una pieza de información.
  • Por ejemplo un vector de bit que represente la instrucción de una computadora puede contener un campo representando el tipo de instrucción.

Concatenación y agregados.

  • Ahora se discuten dos conceptos conocidos como concatenación y agregado. Estos son dos métodos que sirven para asociar señales entre ellos y asignarlas a un arreglo de objetos.

Concatenación

  • VHDL tiene la habilidad de asociar bits individuales y vectores para formar una estructura de arreglo. Esto es conocido como concatenación y utiliza el operador “ampersand” (&). Los ejemplos muestran que bits individuales y vectores de bits pueden ser concatenados para formar nuevos vectores
  • signal Z_BUS: bit_vector(3 downto 0);
  • signal A,B,C,D: bit;
  • signal BYTE: bit_vector(7 downto 0);
  • signal A_BUS: bit_vector(3 downto 0);
  • signal B_BUS: bit_vector(3 downto 0);
  • Z_BUS<= A & B & C & D
  • BYTE<=A_BUS & B_BUS

Agregados.

  • Otro método de asignación a elementos de un arreglo es conocido como agregado.
  • Un agregado esta contenido entre paréntesis y las asignaciones a cada elemento son separadas por comas.
  • Z_BUS<=(A, B, C, D);
  • signal Z_BUS: bit_vector(3 downto 0);
  • signal A,B,C,D: bit;
  • Z_BUS(3)<=A;
  • Z_BUS(2)<=B;
  • Z_BUS(1)<=C;
  • Z_BUS(0)<=D;

Especificando los elementos por nombre.

  • Es posible asignar a los elementos de un arreglo por nombre o por posición.
  • Este ejemplo demuestra que también un rango del arreglo puede ser asignado, siempre y cuando el mismo valor sea asignado a cada elemento del rango.
  • X<= (3=>’1’, 1 downto 0 =>’1’, 2=>B)
  • signal X: bit_vector(3 downto 0);
  • signal A,B,C,D: bit;
  • signal BYTE:bit_vector(7 downto 0)
  • nombre
  • rango
  • nombre

Others, soporte para síntesis.

  • Los agregados tienen la habilidad de usar la sentencia others, la cual asignará un valor a todos los otros elementos de un arreglo que no han sido especificados. Finalmente, no todas las herramientas de síntesis soportan el uso de agregados, por lo que puede ser necesario usar concatenación para realizar manipulaciones sobre arreglos.
  • X<= (3=>’1’, 1 =>’0’, others=>B)
  • signal Z_BUS: bit_vector (3 downto 0);
  • signal A,B,C,D: bit;
  • signal BYTE:bit_vector(7 downto 0);

Necesidad de mas que el “0” y el “1”

  • El tipo bit tiene unas limitaciones, puede solo representar el 0 y el 1. En simulación puede ser útil el poder representar otros valores, por ejemplo: desconocido, no inicializado, alta impedancia. Mientras para la síntesis puede ser útil representar una condición: don’t care
  • Unknown
  • El valor era conocido pero ya no lo es. A menudo denota dos compuertas manejando el mismo nodo de salida, con conflicto entre valores.
  • Un-initialised
  • El valor nunca fue conocido (prepower-up)
  • High Impedance
  • Drive strengths
  • Don’t care
  • Implementación en sintesis. No estamos interesados en el comportamiento de la entrada/salida, la salida no esta siendo monitoreada bajo ciertas condiciones de entrada o ciertas condiciones de entrada que nunca se espera que ocurran

Lógica de valores múltiples

  • La idea de una lógica de valores múltiples, o un sistema LVM lleva un tipo de señal enumerado definido por todos los valores, junto con un grupo de funciones que realizan operaciones lógicas tales como: AND y OR sobre objetos de ese tipo.
  • High impedance
  • “Z”
  • Logic 0
  • “0”
  • Logic 1
  • “1”
  • Un-initialised
  • “U”
  • Unknown
  • “X”
  • Don’t care
  • “-”

Compuerta inversora NMOS Estática

  • 0
  • ?
  • 0
  • 1
  • 1
  • c
  • c
  • Output
  • input
  • VDD

Compuerta inversora NMOS Estática

  • RONPU
  • ROFFPD
  • Input=L
  • Output=Vdd
  • ROFFP
  • ROFFPD
  • RONPU
  • +
  • =H
  • VDD
  • RONPU
  • RONPD
  • Output=Vdd
  • RONPD
  • RONPD
  • RONPU
  • +
  • =L
  • VDD
  • Input=H
  • VDD
  • H
  • L
1   2   3   4   5   6


La base de datos está protegida por derechos de autor ©absta.info 2016
enviar mensaje

    Página principal